2016-09-19 2 views
0

Ich habe Probleme beim Abfragen der folgenden in MongoDB C#. Mein Code in Mongo-Client istWie Verwenden von "Oder" Anweisung in MongoDB C# -Treiber?

db.collection.find({ $or: [ { quantity: { $lt: 20 } }, { price: 10 } ,{price:100},{name:"x"}] }) 

aber wie Sie dasselbe in C# abfragen. konnte ich die folgenden Mongo Client-Code-Anweisung

db.collection.find({type:"food"},{name:1,quantity:1}) 

als

var match = new BsonDocument() { { "$match", new BsonDocument { {"type":"food" } } } }; 
var project = new BsonDocument(){ { "$project", new BsonDocument{ { "name", 1 } { "quantity", 1 } } } }; 
AggregateArgs AggregationPipeline = new AggregateArgs() { Pipeline = new[] { match, project } }; 
var aggregate = Collection.Aggregate(AggregationPipeline); 

Ich bin mit Mongo C Sharp Treiber 1.9.2 abzufragen. Danke.

Antwort

1

Fügen Sie zunächst einen Builder:

var builder = Builders<BsonDocument>.Filter; 

Dann wird ein Filter wie folgt aus:

var filter = builder.Lt("quantity", 20) | builder.Eq("price", 10) | other stuff) 

Und schließlich so etwas wie:

db.collection.Find(filter).ToList(); 
+0

Hallo @Mahdi, ich bin mit MongoCSharpDriver. 1.9.2. Der Builder-Kontext existiert in dieser Version nicht. Vielen Dank – coder

Verwandte Themen