在mongodb shell中打印文档值

时间:2014-08-27 12:46:04

标签: mongodb mongodb-query

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

enter image description here

提前致谢

4 个答案:

答案 0 :(得分:14)

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

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

答案 1 :(得分:2)

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

游标对象有很多方法,可用于从查询结果(在Mongo Shell中)获取游标信息,进行迭代,获取并使用各个文档。例如,

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

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

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

    result.forEach( doc =>  print( doc.quality_level ) );
    result.forEach( doc =>  print( tojson(doc)) );
    result.forEach( printjson );

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

注意:

答案 2 :(得分:1)

要在返回光标时打印每个文档:

db.widget.find().forEach(printjson);

答案 3 :(得分:-1)

db.widget.findOne({"id":4},{quality_level:1,_id:0}).quality_level

投影不是必须的,但是它会减少收集分片时要传输的数据。