我有这个问题:
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#中不起作用?
答案 0 :(得分:1)
您需要在$elemMatch
表达式中嵌套多个$and
。有关示例,请参阅此this thread。
将JSON视为地图 - 如果您有重复的密钥,它们将相互覆盖并导致错误和/或意外结果。