我在聚合管道中运行了一些东西并将其分配给变量。我不确定返回对象的结构究竟是什么,并希望某种“头”可以让我逐行查看它,或者某些函数可以让我看到它包含哪些对象。这是什么语法?
var names = db.inst.aggregate(
{ $group : {
_id : "$inst.state",
names: {$addToSet: "$inst.name"}
}}
).result
我现在如何查询姓名?
答案 0 :(得分:1)
我假设您正在使用mongo shell。
如果你现在拥有的是一个JSON对象,我假设它看起来像这样:
[
{"_id": "fred", "names": ["fred", "john"]},
{"_id": "jack", "names": ["jack", "bill"]}
]
因此,要查看您拥有的值,您只需运行命令
即可names
这将显示集合中的所有结果
要查看单个结果,您只需使用数组的索引:
names[1]
要获取项目的属性,只需使用点表示法:
names[1].names
答案 1 :(得分:1)
制作一个js脚本,输出结果并从shell运行脚本,将输出重定向到您选择的文件,
因此,如果您使用的数据库是db_name,并且保存了在print-names-result.js
中输出结果的脚本,只需将printjson(names)
添加到现有脚本中,命令将为:
mongo db_name print-names-result.js > names.json
然后用编辑器检查文件names.json
。
当然,您也可以将输出直接传递给head
命令:
mongo db_name print-names-result.js | head
答案 2 :(得分:1)
最接近头部的类似物是:
使用var s = JSON.stringify(names)
使用s.slice(from,to);
从字符串中提取所需的部分 - 或在其上运行正则表达式以找到所需内容。
除此之外,您可以通过数组索引从结果中引用单个项目。