不确定如何在 MongoDb(最新驱动程序版本)的 c# 中使用 ElemMatch
not sure how to use ElemMatch in c# for MongoDb (newest driver version)
我有一个 MongoDB 集合,格式如下:
{
"_id" : ObjectId("5692a3397d7518330416f8e5"),
"supertagname" : "xxx",
"inclusions" : [
"test",
"blabla"
],
"exclusions" : [ ]
}
并且我正在尝试查询数组 "inclusions" 包含我要查找的值的所有文档。这是代码
string t = "blabla"; // the string value I am looking for
filter = Builders<BsonDocument>.Filter.ElemMatch(
"inclusions", Builders<BsonDocument>.Filter.Eq("inclusions", t));
var matches = dictCollection.Find(filter).ToList();
foreach (BsonDocument doc in matches) {}
matches.count
始终为 0。我做错了什么?
谢谢
我认为您可以使用这样的过滤器更简单地完成此操作:
var filter = Builders<BsonDocument>.Filter.AnyEq("inclusions", t);
这将过滤 inclusions
数组包含您要查找的值的文档。
http://mongodb.github.io/mongo-csharp-driver/2.2/reference/driver/definitions/#array-operators
我有一个 MongoDB 集合,格式如下:
{
"_id" : ObjectId("5692a3397d7518330416f8e5"),
"supertagname" : "xxx",
"inclusions" : [
"test",
"blabla"
],
"exclusions" : [ ]
}
并且我正在尝试查询数组 "inclusions" 包含我要查找的值的所有文档。这是代码
string t = "blabla"; // the string value I am looking for
filter = Builders<BsonDocument>.Filter.ElemMatch(
"inclusions", Builders<BsonDocument>.Filter.Eq("inclusions", t));
var matches = dictCollection.Find(filter).ToList();
foreach (BsonDocument doc in matches) {}
matches.count
始终为 0。我做错了什么?
谢谢
我认为您可以使用这样的过滤器更简单地完成此操作:
var filter = Builders<BsonDocument>.Filter.AnyEq("inclusions", t);
这将过滤 inclusions
数组包含您要查找的值的文档。
http://mongodb.github.io/mongo-csharp-driver/2.2/reference/driver/definitions/#array-operators