MongoDB:如何按条件顺序查询$或运算符时对文档进行排序?

时间:2016-06-02 14:00:05

标签: mongodb sorting mongoose mongodb-query

拥有以下Mongoose查询:

User.find({$or: [
    { 'expertData.category': { $in: categoryIds } },
    { 'expertData.areas.category': { $in: categoryIds } }
]})
.limit(perPage)
.skip(perPage * page);

字段'expertData.category''expertData.areas.category'Category集合的引用ID,具有以下架构:

var CategorySchema = new Schema({
    name: {type: String},
    desc: {type: String},
    src : {type: String},
    updated: {
        type: Date,
        default: Date.now
    }
});

是否有任何方式以这种方式对文档进行排序,因此在结果数组的开头将是$or运算符中匹配第一个条件的文档(即{ '_expertData.category': { $in: categoryIds } }),然后才会是所有与$or运算符中的第二个条件匹配的文档(即{ '_expertData.areas.category': { $in: categoryIds } })?

1 个答案:

答案 0 :(得分:0)

是的,您可以单独执行命令,并将第二个查询的结果附加到第一个查询的结果中。