我有问题,但我不能在这里粘贴整个代码,所以让我试着解释一下。我需要通过 id 找到一些文档并填充其 ObjectId 的数组元素。假设我有以下来自用户集合的文档:
{
_id: 1,
"first_name":"Nick",
"last_name":"Parsons",
"email":"nick@movementstrategy.com",
"password":"foo",
"clients":[
"50f5e901545cf990c500000f",
"50f5e90b545cf990c5000010",
"50f5e90b545cf990c5000013"
]
}
找到它后,我会像这样填充它的客户:
User.findById(1)
.populate('clients')
.exec(function (err, user) {
});
执行上面的代码后,我有一个填充了客户端数组的“用户”变量。但是客户的订单错误,如下所示:
{
_id: "50f5e901545cf990c500000f",
"first_name":"cl1",
},
{
_id: "50f5e90b545cf990c5000013",
"first_name":"cl3",
},
{
_id: "50f5e90b545cf990c5000010",
"first_name":"cl2",
}
应该:
"50f5e901545cf990c500000f",
"50f5e90b545cf990c5000010",
"50f5e90b545cf990c5000013"
代替:
"50f5e901545cf990c500000f",
"50f5e90b545cf990c5000013",
"50f5e90b545cf990c5000010"
有人有类似的问题还是我很幸运?
编辑:我添加了代码:http : //pastie.org/5901177 在该代码中,我创建了 3 个客户端并推送到 user.clients 数组中。之后,我在 user.clients 数组的顶部又添加了一个客户端。所以当我这样做的时候
Client.where('_id').in(user.clients)
我得到错误的顺序。请通过控制台查看此内容。