【问题标题】:Execute complex mongo JSON query using C# mongo driver使用 C# mongo 驱动程序执行复杂的 mongo JSON 查询
【发布时间】:2016-06-09 07:36:25
【问题描述】:

我有以下 mongo shell 查询:

{'field':'FieldOne','value':'FieldOne','category':'categoryOne'} , { 'Color' : { '$elemMatch' : { 'Value' : 'Green' } }}

有没有办法使用 C# mongo 驱动程序执行相同的查询?我尝试使用下面的C# 代码,但只有第一个被执行:

 BsonDocument query = BsonDocument.Parse("{'field':'Overall','value':'Overall','category':'LoggedIncidents'} , { 'Priority' : { '$elemMatch' : { 'Value' : 'P1' } }}");
 QueryDocument queryDoc = new QueryDocument(query);
 var result = collection.Find(queryDoc).ToListAsync().Result;

第一项 ({'field':'FieldOne','value':'FieldOne','category':'categoryOne'}) 正在执行,但第二项 ({ 'Color' : { '$elemMatch' : { 'Value' : 'Green' } }}) 未执行。

【问题讨论】:

  • 快速浏览一下: {'field':'Overall','value':'Overall','category':'LoggedIncidents'} , { 'Priority' : { '$elemMatch' : { 'Value' : 'P1' } }} 不是有效的 json 查询。它有两个根源。尝试 {$and [{'field':'Overall','value':'Overall','category':'LoggedIncidents'} , { 'Priority' : { '$elemMatch' : { 'Value' : 'P1' } }}]}

标签: c# mongodb mongodb-query


【解决方案1】:

如果我没记错的话,你在 find 命令中使用它。 第一个“{}”是查找的过滤条件。下一组参数本质上是显示/隐藏您需要的字段。 因此,如果您想按数组“green”的值进行过滤,您可以这样做。

 db.objects.find({"color":{$elemMatch:{value:"green"}}})

应该给你你正在寻找的结果。但是如果你想专门显示/隐藏字段,你可以这样做

 db.objects.find({"color":{$elemMatch:{value:"green"}}},{"field":1})

这是你想要达到的吗?

【讨论】:

    猜你喜欢
    • 2016-06-28
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多