0

我正在使用 MongoDB 作为我的应用程序的数据库

我有一个关于 Mongo DB find operation 的问题。

假设我在一个字段上有两个/三个相同的记录,比如数据库中存在的集合中的符号。

db.collection.find({“符号”:“GOOG”})

Mongo DB 显示第一条记录的依据是什么?

编辑部分

我的测试环境和生产环境中都存在 Mongo DB,并且具有相同的数据。

我的问题是

当我做

db.bios.find({“名称”:“FOOGY”})

在两种环境中显示的数据(第一条记录)存在差异??

请让我知道为什么在发出相同的命令时在两个环境中显示的数据会有所不同

db.bios.find({“名称”:“FOOGY”})

请让我知道有什么经验法则应该先播种什么记录?

4

3 回答 3

3

除非您明确排序,否则它们恰好存储在磁盘上的任何顺序(称为自然顺序)。如果您关心返回记录的顺序,请sort为您的find.

为了解决您更新的问题:是的,如果您将相同的文档存储在不同的 MongoDB 实例中,它们肯定可以以彼此不同的方式返回。即使是单个 MongoDb 实例也可以随着时间的推移以不同的顺序返回文档,因为文档由于更新而重新定位在磁盘上。

于 2012-12-17T18:33:53.983 回答
0

它以找到它们的任何顺序返回记录。它不是随机的,但也不是可预测的,即使你找到了一种模式,它也可能由于某种原因突然变得完全不同。当您需要特定顺序时,对结果进行排序,或在查询中包含唯一索引并使用 findOne()。

于 2012-12-17T18:47:08.917 回答
0

这些文件实际上是以查找顺序而不是$natural顺序返回的,并且正如所说的,关于$natural顺序,当我很久以前在 Google Group 中问这个问题时,它们是不一样的。

查找顺序具有随机性,但不是完全随机的。

于 2012-12-17T18:48:59.440 回答