所以我在使用pymongo和使用或条件时通过mongoDB遇到一些麻烦。看了所有类似的帖子,但由于某种原因,我似乎没有工作。
goodShots = coll.find({"Tag" : "zombiegame", "Meta.levelState":"NORMAL_MODE", "$or":[
{"Meta.zombiesInLOS":{'$gt':0}}, {"Meta.zombiesInSLOS":{'$gt':0}},
{"Meta.helpersInLOS":{'$gt':0}}, {"Meta.helpersInSLOS":{'gt':0}}
]})
goodShot01 = coll.find({"Tag" : "zombiegame", "Meta.levelState" : "NORMAL_MODE", "Meta.zombiesInLOS" : {"$gt" : 0}})
goodShot02 = coll.find({"Tag" : "zombiegame", "Meta.levelState" : "NORMAL_MODE", "Meta.zombiesInSLOS" : {"$gt" : 0}})
goodShot03 = coll.find({"Tag" : "zombiegame", "Meta.levelState" : "NORMAL_MODE", "Meta.helpersInLOS" : {"$gt" : 0}})
goodShot04 = coll.find({"Tag" : "zombiegame", "Meta.levelState" : "NORMAL_MODE", "Meta.helpersInSLOS" : {"$gt" : 0}})
第一个问题' goodShots'应该在技术上返回具有' goodShot01-04中所有其他条件的查询。'但是,它返回0.' goodShot01-04'返回计数> 0虽然。
答案 0 :(得分:0)
如果我插入4个文件,如
{
"Tag" : "zombiegame",
"Meta" : {
"levelState" : "NORMAL_MODE",
"zombiesInLOS" : 1
}
}
通过4种可能性改变Meta
中的最后一个字段,然后我找到包含goodShots
查询的所有四个文档以及goodShot01
到goodShot04
的每个相应文档。我必须在$or
的最后一个句子中添加一个丢失的$来查找4个而不是3个文档。也许再次检查一下您是否正在进行正确的查询?