MongoDB:了解游标及其用法

时间:2013-11-22 14:42:11

标签: mongodb

我只是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的整体架构。

1 个答案:

答案 0 :(得分:0)

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中描述。如果您有具体问题,请随时将其作为新问题提出。