在mongo上,我发出以下查询:
db.usertest.find({ "events.event":"event0", "events.event":"event1", "events.event":"eventX" })
根据这里的文档http://docs.mongodb.org/manual/tutorial/query-documents/#id4,我希望这只能匹配数组中包含所有这三个元素的文档。
但是,它与此doc匹配:
{ "_id" : "userbruce", "events" : [ { "event" : "eventX" } ] }
为什么?
文档说这种格式匹配的文档"包含某些组合满足查询条件的元素"什么是匹配event0或event1?
编辑:它是否因为我每次放入相同的字段而感到困惑?答案 0 :(得分:0)
对于使用此数据的AND操作,请尝试以下查询:
db.usertest.find({$and : [{ "events.event":"event0"}, {"events.event":"event1"}, {"events.event":"eventX" }]})
是的,混乱是因为你每次都给予相同的领域。如果你尝试下面的文件:
{
"_id" : "userbruce",
"events" : [
{
"eventA" : "eventX"
},
{
"eventB" : "event0"
},
{
"eventC" : "event1"
}
]
}
然后,您的查询将不会给出任何结果。因此,您的查询是正确的,但数据不适合该查询。