gpt4 book ai didi

node.js - Mongoose - 如何从对象 ID 数组中查找集合

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:50 25 4
gpt4 key购买 nike

假设我有一个对象 ID 数组:

[ 1, 2, 3, 4, 5 ]

我有一个名为 user 的集合,其中包含以下值:

[
{
_id: 3,
name: 'hehe'
},

{
_id: 5,
name: 'hehe1'
},

{
_id: 2,
name: 'hehe2'
},

{
_id: 1,
name: 'hehe3'
},

{
_id: 4,
name: 'hehe4'
},

{
_id: 6,
name: 'hehe5'
}
]

如何查询集合“user”的数组对象 ID?结果应该与对象 id 数组的顺序相同,这可能吗?

提前致谢!

最佳答案

您可以使用$in过滤文档,然后您可以使用 $indexOfArray添加可用作 $sort 的键的特殊字段:

db.collection.aggregate([
{
$match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } }
},
{
$addFields: { idx: { $indexOfArray: [ [ 1, 2, 3, 4, 5 ], "$_id" ] } }
},
{
$sort: { idx: 1 }
}
])

Mongo Playground

关于node.js - Mongoose - 如何从对象 ID 数组中查找集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59834037/

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