Mongodb通过成功的$ in排序查询结果

时间:2016-04-03 16:32:48

标签: python django mongodb mongoengine

我有这个查询。

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,如果它确实重要

0 个答案:

没有答案