我想在Mongo shell中打印此JSON文档的值。就像简单的控制台输出一样,而不创建新集合或文档。
先感谢您。
我想在Mongo shell中打印此JSON文档的值。就像简单的控制台输出一样,而不创建新集合或文档。
先感谢您。
我找到了一个解决方案,通过使用.forEach()
来应用JavaScript方法:
db.widget.find(
{ id : "4" },
{quality_level: 1, _id:0}
).forEach(function(x) {
print(x.quality_level);
});
db.collection.find()
返回一个 游标。
有许多用于游标对象的方法,可用于获取游标信息、迭代、获取并处理查询结果中的单个文档(在Mongo Shell中)。例如,
let result = db.widget.find( { id : "4" }, { quality_level: 1, _id: 0 } );
在Mongo Shell中,print
、printjson
和tojson
方法对于打印分配给游标并遍历的查询结果非常有用。
在这个特定的例子中,以下每个语句都将打印出预期的输出:
result.forEach( doc => print( doc.quality_level ) );
result.forEach( doc => print( tojson(doc)) );
result.forEach( printjson );
cursor.toArray()
方法获取一个JavaScript数组,并迭代该数组并处理查询结果文档,而无需再次运行查询。
注:
db.collection.findOne()
方法返回一个文档(而不是光标)。db.collection.findOne()
以格式化的 JSON 打印返回的文档。要以格式化的方式打印 find()
的结果(一个或多个文档),请使用 db.collection.find().pretty()
。这些方法打印文档的所有字段。要使用 projection 限制字段,请在查找方法中使用它。 - prasad_mongo
shell 中,print('Richard')
是一个 有效的 语句。print(123)
和 print([12, 34, 99, 1000])
也是如此。要打印 JSON,您可以使用 printjson({ a: 65 })
。 - prasad_db.widget.find().forEach(printjson);
db.widget.findOne({"id":4},{quality_level:1,_id:0}).quality_level
这个操作并不需要投影,但是在分片集合的情况下,它可以减少要传输的数据量。