gpt4 book ai didi

java - 如何保留 $in 查询的光标顺序?

转载 作者:行者123 更新时间:2023-12-01 10:24:41 25 4
gpt4 key购买 nike

Mongo在执行$in查询时是否确保光标的顺序?

说这是我的查询:

db.collection.find({"_id":{"$in":["a","b","c"]}});

如果有三个文档匹配此查询,其顺序预计如何?查询订单?或者插入订单?或者修改顺序?或者一些随机顺序?

最佳答案

实际上,如果不附加排序操作,它们将在 natural order 中返回。 .

一般来说,如果您需要按特定顺序返回它们,则应明确说明:

db.collection.find({"_id":{"$in":["a","b","c"]}}).sort({_id:1});

这应该按 a、b、c 的顺序为您提供结果集(假设您有所有查询的 _id 的匹配项)。而且它甚至更便宜,因为它将使用索引。

谈到索引:如果您按另一个字段排序,则应该有一个包含该字段的索引。因此,如果您有类似的查询

db.collection.find({"_id":{"$in":["a","b","c"]}}).sort({foo:-1});

应该创建一个类似的索引

db.collection.createIndex({_id:1,foo:-1})

MongoDB 每日口头禅

Order matters.

在这种情况下,甚至两次:排序顺序和索引内键的顺序,这需要反射(reflect)查询中键的顺序。

关于java - 如何保留 $in 查询的光标顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35406221/

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