我在mongo中有以下文档:
{
'Name': 'Dummy',
'North-East-Bound': {
'lat': 0,
'lng': 0
},
'South-West-Bound': {
'lat': 0,
'lng': 0
}
}
我正在进行以下查询:
result = self.coll.find_one({
'North-East-Bound':
{'lat': {'$gte': lat},
'lng': {'$gte': lng}
},
'South-West-Bound':
{'lat': {'$lte': lat},
'lng': {'$lte': lng}
}
})
显然我使用lat = 0和lng = 0作为参数。我想要返回虚拟文档,但我得到无。我做错了什么?
感谢。
答案 0 :(得分:0)
您可以使用点表示法在嵌入文档的字段上运行查询。
find_one({
'North-East-Bound.lat': {
'$gte': lat
},
'North-East-Bound.lng': {
'$gte': lng
},
'South-West-Bound.lat': {
'$lte': lat
},
'South-West-Bound.lng': {
'$lte': lng
}
})
这将用于平等比较。这是嵌入式文档级别比较。
find_one({
'North-East-Bound': {
'lat': 0,
'lng': 0
},
'South-West-Bound': {
'lat': 0,
'lng': 0
}
})
更多信息
https://docs.mongodb.com/manual/core/document/#dot-notation
https://docs.mongodb.com/manual/tutorial/query-embedded-documents/#query-on-nested-field