gpt4 book ai didi

MongoDB:检索集合中的第一个文档

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

我是 Mongo 的新手,我正在尝试从 find() 查询中检索第一个文档:

> db.scores.save({a: 99});
> var collection = db.scores.find();
[
{ "a" : 99, "_id" : { "$oid" : "51a91ff3cc93742c1607ce28" } }
]
> var document = collection[0];
JS Error: result is undefined

这有点奇怪,因为集合看起来很像数组。我知道使用 findOne() 检索单个文档,但是可以从集合中提取一个吗?

最佳答案

find 方法返回一个游标。这就像结果集中的迭代器一样工作。如果您有太多结果并尝试将它们全部显示在屏幕上,shell 将只显示前 20 个,并且光标现在将指向结果集的第 20 个结果。如果您键入 it,将显示接下来的 20 个结果,依此类推。

在你的例子中,我认为你在 shell 中隐藏了一行。

这个命令

> var collection = db.scores.find();

只会将结果分配给 collection 变量,不会在屏幕上打印任何内容。所以,这让我相信你也跑了:

> collection

现在,真正发生了什么。如果您确实使用上述命令显示了 collection 的内容,那么光标将到达结果集的末尾(因为您的集合中只有一个文档)并且它会自动关。这就是为什么你会得到错误。

您的语法没有问题。您可以随时使用它。只要确保您的光标仍然打开并且有结果。您可以为此使用 collection.hasNext() 方法。

关于MongoDB:检索集合中的第一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16866977/

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