在mongodb shell中打印文档值

kch*_*mik 7 mongodb mongodb-query

我想在mongo shell中打印此JSON文档的值.像一个简单的控制台输出,无需创建新的集合或文档.

在此输入图像描述

提前致谢

kch*_*mik 17

我找到了一个解决方案,通过使用.forEach()JavaScript方法:

db.widget.find(
    { id : "4" }, 
    {quality_level: 1, _id:0}
).forEach(function(x) { 
    print(x.quality_level); 
});
Run Code Online (Sandbox Code Playgroud)


pra*_*ad_ 7

db.collection.find()返回一个游标

游标对象有很多方法,可用于获取游标信息、迭代、获取和处理查询结果中的各个文档(在 Mongo Shell 中)。例如,

let result = db.widget.find( { id : "4" }, { quality_level: 1, _id: 0 } );
Run Code Online (Sandbox Code Playgroud)

方法printprintjsontojson对于在 Mongo Shell 中打印分配给游标并对其进行迭代的查询结果非常有用。

在这个特定的示例中,以下每个语句都将打印预期的输出:

    result.forEach( doc =>  print( doc.quality_level ) );
    result.forEach( doc =>  print( tojson(doc)) );
    result.forEach( printjson );
Run Code Online (Sandbox Code Playgroud)

请注意,每次要迭代游标时都必须运行查询,因为游标在迭代后会关闭。但是,我们可以使用该cursor.toArray()方法获取JavaScript 数组,并迭代该数组并使用查询结果文档,而无需再次运行查询。

笔记: