gpt4 book ai didi

node.js - 填充后数组顺序错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:00 25 4
gpt4 key购买 nike

我遇到了问题,但我无法在此处粘贴整个代码,所以让我尝试解释一下。我需要按 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)

我的订单有误。请通过控制台查看此内容。

最佳答案

在 MongoDB 中,每个修改(或添加的文档)都会位于列表的底部。如果您希望按特定顺序退回商品,请在查询中指定:

User.find()
.sort({_id: 1})

其中-1指定相反的顺序。您可以按任何其他标准排序。

关于node.js - 填充后数组顺序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14559329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com