gpt4 book ai didi

node.js - Mongodb:如何以与数组元素相同的顺序订购 "select in"

转载 作者:IT老高 更新时间:2023-10-28 13:29:48 24 4
gpt4 key购买 nike

我正在执行这个 mongo 查询:

db.mytable.find({id:{$in:["1","2", "3", "4" ]}});

它以奇怪的顺序返回所有结果,如下所示:

4,3,2,1

我需要按照查询数组中定义的顺序检索所有结果。

1,2,3,4

有可能吗?

最佳答案

确实无法保证查询返回的结果的顺序,但您可以在之后对结果进行排序。两个例子,第一个是你想要的顺序,第二个是相反的。

const arr = ["1", "2", "3", "4" ];

db.collection.find({ id: { $in: arr }})
.then(result => {

let sorted = arr.map(i => result.find(j => j.id === i));
console.log(sorted) // 1, 2, 3, 4

let reversed = arr.reverse().map(i => result.find(j => j.id === i));
console.log(reversed) // 4, 3, 2, 1

});

如果您想进行真正的 MongoDB ID 查找,请使用 db.collection.find({ _id: { $in: arr }}).map(i => result .find(j => j._id == i))(注意两个等号而不是三个)

关于node.js - Mongodb:如何以与数组元素相同的顺序订购 "select in",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12693555/

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