MongoDB:使用$or运算符按条件顺序查询时,如何对文档进行排序?
具有以下Mongoose查询: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
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
对结果进行分页。对不起,我在最初的问题中没有提到这一点。我现在已经更新了。