【问题标题】:MongoDB: Understanding cursors and there usageMongoDB:了解游标及其用法
【发布时间】:2013-11-22 22:53:24
【问题描述】:

我只是 mongo DB 的初学者。在浏览mongoDB文档时,我发现了一些语句,语句如下

var store_test2 = db.test2.find();
var store_test2_1= store_test2.hasNext() ? store_test2.next(): null;
print(store_test2_1.friends);

我对上面的代码有几个问题。

  1. 什么是?在上面的代码中,为什么我的代码不指定就无法运行?

  2. store_test2 存储从集合 test2 返回的文档。 Test2 集合有很多文档。集合中存在的文档有 称为朋友的键或属性。我想为所有人打印朋友的价值观 文件。

    我可以通过使用函数来实现需求。 但是如何通过使用上面给出的类似代码来实现相同的目标?

    例如,我有 5 个文档,每个文档的朋友属性为 34,344,54,32,444。 我的输出应该是这样的

    34

    344

    54

    32

    444

    上面的代码只会给我一个文档的属性“朋友”的输出,即 34。

  3. 谁能给我一些链接,我可以在其中找到相关信息

    mongoDB 后台作业。

    读写是如何发生的。

    集群行为。

    主要和次要节点行为。

    mongoDB 的整体架构。

【问题讨论】:

  • 这里有很多问题,有些可以从谷歌搜索得到,通常是谷歌,然后如果你在那里找不到答案,你可以在这里问

标签: mongodb


【解决方案1】:

1.什么是?在上面的代码中

?:conditional operator。它是作业中 if...else 的简写。该行的长格式是:

var store_test2_1;
if (store_test2.hasNext()) {
    store_test2_1 = store_test2.next();
} else {
   store_test2_1 = null;
} 

2。我想为所有文档打印朋友的值。

MongoDB 游标的工作方式类似于迭代器。只要 .hasNext() 返回 true,就可以使用 .next() 方法检索更多文档。你可以用一个while循环来做到这一点:

while(cursor.hasNext()) {
    var document = cursor.next();
    print(document.friends);
}

3.谁能给我一些链接

Stackoverflow 正在努力成为一个知识库,而不是一个链接集合,所以请不要索要链接。提出具体问题,我们会尽力解答。

话虽如此,所有这些主题都在the MongoDB manual 中进行了描述。如果您有具体问题,请随时提出新问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 2021-05-20
    • 2018-07-16
    • 1970-01-01
    相关资源
    最近更新 更多