mongo c#

时间:2016-08-10 13:23:42

标签: c# .net mongodb

我有这个问题:

string jsonquery = "{
$and : [{
        WordsData : {
            $elemMatch : {
                UserId : ObjectId('57a87f5cc48933119cb96f93'),
                UserId : ObjectId('57a87f5cc48933119cb96f94')
            }
        }
    }, {
        WordsData : {
            $not : {
                $elemMatch : {
                    MatchType : 2
                }
            }
        }
    }
]
}"

如果我在mongo控制台中执行它正常工作!
我正在尝试在c#程序中运行此查询。运行相同的json查询我收到以下错误:

BsonDocument doc = BsonSerializer.Deserialize<BsonDocument>(jsonquery);
[Error] --> {"Duplicate element name 'UserId'."}

为什么在c#中不起作用?

1 个答案:

答案 0 :(得分:1)

您需要在$elemMatch表达式中嵌套多个$and。有关示例,请参阅此this thread

将JSON视为地图 - 如果您有重复的密钥,它们将相互覆盖并导致错误和/或意外结果。