![](/img/trans.png)
[英]MongoDB C# driver: how to use $in operator for nested embedded documents?
[英]How to filter nested documents with mongodb c# driver?
我有下一個查詢,該查詢過濾了集合中的嵌套數組文檔並且不起作用(始終返回false):
var collection = MongoClientSingleton.GetInstance().GetCollection<Access>
("access");
var filters = Builders<Access>.Filter.Eq("modules", new BsonDocument { {
"value", val }, { "enabled", true }, { "type", type } });
return collection.Find(filters).Any();
使用linq構建過濾器時,我獲得了成功:
var filters = Builders<Access>.Filter.Where(a => a.modules.Any(m => m.value == val && m.enabled == true && m.type == type));
但是我想做過濾器更像顯示的第一個代碼(使用BsonDocument類)。
Access和Module的類結構如下:
public class Access
{
...
public List<Module> modules {get; set; }
...
}
public class Module
{
...
public string value { get; set; }
public bool enabled { get; set; }
public string type { get; set; }
...
}
謝謝!
對於復雜或嵌套的查詢,可以嘗試使用聚合函數。 這是關於它的好書https://mikaelkoskinen.net/post/mongodb-aggregation-framework-examples-in-c
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.