Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:使用$or运算符按条件顺序查询时,如何对文档进行排序?_Mongodb_Sorting_Mongoose_Mongodb Query - Fatal编程技术网

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

MongoDB:使用$or运算符按条件顺序查询时,如何对文档进行排序?,mongodb,sorting,mongoose,mongodb-query,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'是类别集合的参考ID

具有以下Mongoose查询:

User.find({$or: [
    { 'expertData.category': { $in: categoryIds } },
    { 'expertData.areas.category': { $in: categoryIds } }
]})
.limit(perPage)
.skip(perPage * page);
字段
'expertData.category'
'expertData.areas.category'
类别
集合的参考ID,集合具有以下架构:

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

是否有任何方法可以以这种方式对文档进行排序,以便在结果数组的开头是与
$或
运算符中的第一个条件相匹配的文档(即
{'\u expertData.category':{$in:categoryIds}
)只有到那时,所有文档才会与
$或
操作符中的第二个条件相匹配(即
{''u expertData.areas.category':{$in:categoryIds}}
)?

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

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

是的,这是可行的解决方案,但在我的情况下不是这样。我将使用
.limit
.skip
对结果进行分页。对不起,我在最初的问题中没有提到这一点。我现在已经更新了。是的,这是可行的解决方案,但我的情况不是这样。我将使用
.limit
.skip
对结果进行分页。对不起,我在最初的问题中没有提到这一点。我现在已经更新了。