我有一个查询需求,需要查找一个账户并填充账户的子文档。
当我使用populate path:"orders"时,limit选项可以正常工作。但是,如果我使用populate path"orders.order",limit选项将无法工作。
我该怎么办?
我的模式如下:
当我使用populate path:"orders"时,limit选项可以正常工作。但是,如果我使用populate path"orders.order",limit选项将无法工作。
我该怎么办?
我的模式如下:
var AccountSchema = new mongoose.Schema({
_id:id,
orders:{type:[{
order:{type: mongoose.Schema.Types.ObjectId, ref:'Order'}
}]}
});
var findOrderByUserId = function(accountId,index,count,callback){
var limit = index*count;
console.log(limit);
Account.findOne({_id:accountId}).populate({
path:'orders.order',//If path is orders, then limit will work
options:{
limit:limit
}
}).exec(function (err, doc) {
if (err) {
console.log(err);
callback(err);
}
console.log(doc);
var array = [];
for(var i=limit - count;i<doc.orders.length;i++){
if(doc.orders[i]!=null){
array.push(doc.orders[i]);
}
else{
break;
}
}
callback(doc);
})
}
$slice
操作符。https://docs.mongodb.com/manual/reference/operator/projection/slice/ - Ali Dehghani