我有这个查询。
db.house.find(
{ 'persons.person_id':
{ $in:
[ ObjectId("570028671d41c8eaeb6c9ce8"),
ObjectId("570028681d41c8eaeb6c9e38")
]
}
})
在Django,它看起来像:
House.objects(persons__persons_id__in=[my_object_list])
我喜欢它。
结果我得到了Houses,其中'persons.person_id'列表至少有一个来自ObjectId列表的ObjectId匹配(它可以超过2个元素)
是否可以通过成功的$ in来对结果进行排序?
例如,我收到5个房子,其中3个在ObjectId列表中有1个person_id,其中2个在ObjectId列表中有2个person_id。所以我想先得到这两个房子!我为这个糟糕的解释道歉。
我的db中的示例文档:
{
"_id" : ObjectId("570031aa1d41c8ed54393b19"),
"persons" : [
{
"person_id" : ObjectId("570028671d41c8eaeb6c9dff"),
"t" : "150 t"
},
{
"person_id" : ObjectId("5700312d1d41c8ed54393b05"),
"t" : "1 g"
},
{
"person_id" : ObjectId("5700312d1d41c8ed54393b06"),
"t" : "70 y"
}
]
}
我正在使用Django和mongoengine,如果它确实重要