我的文档如下:
"ID" : "fruit1",
"Keys" : [
["apple", "carrot"]
["banana"]
]
如何使用MongoDB C#驱动程序查询Keys =“carrot”?
我可以在shell中执行:
db.multiArr.find({'Keys':{$elemMatch:{$elemMatch:{$in:['carrot']}}}})
我是从这里找到的:Querying an array of arrays in MongoDB
但我没有成功用c#driver写它。
答案 0 :(得分:0)
尝试这样的事情。
注意:我没有测试过。
MongoClient client = new MongoClient(); // connect to localhost
MongoServer server = client.GetServer();
var db = server.GetDatabase("foo");
var col = db.GetCollection<RawBsonDocument>("multiArr");
// Query = {'Keys':{$elemMatch:{$elemMatch:{$in:['carrot']}}}}
BsonDocument query = new BsonDocument{
"Keys", new BsonDocument {
"$elemMatch", new BsonDocument {
"$elemMatch", new BsonDocument {
"$in", new BsonArray().Add("carrot")
}
}
}
};
col.Find(query);
更多信息:http://docs.mongodb.org/ecosystem/tutorial/use-csharp-driver/#csharp-driver-tutorial
答案 1 :(得分:0)
我成功了一些不太生动的东西:
var q = Query.ElemMatch("Keys", Query.In("$elemMatch", new List<BsonValue> { "carrot" }));