如何";标题「;非常长的MongoDB返回变量
我在聚合管道中运行了一些东西,并将其分配给一个变量。我不确定返回对象的结构到底是什么,我想要某种“head”让我逐行查看它,或者一些函数让我查看其中包含哪些对象。这个的语法是什么如何";标题「;非常长的MongoDB返回变量,mongodb,Mongodb,我在聚合管道中运行了一些东西,并将其分配给一个变量。我不确定返回对象的结构到底是什么,我想要某种“head”让我逐行查看它,或者一些函数让我查看其中包含哪些对象。这个的语法是什么 var names = db.inst.aggregate( { $group : { _id : "$inst.state", names: {$addToSet: "$inst.name"} }} ).result 我现在如何询问姓名?我假设您在mongo she
var names = db.inst.aggregate(
{ $group : {
_id : "$inst.state",
names: {$addToSet: "$inst.name"}
}}
).result
我现在如何询问姓名?我假设您在mongo shell中工作 如果您现在是一个JSON对象,我假设它看起来像这样:
[
{"_id": "fred", "names": ["fred", "john"]},
{"_id": "jack", "names": ["jack", "bill"]}
]
因此,要查看您拥有的值,只需运行命令
names
这将显示集合中的所有结果
要查看单个结果,只需使用数组的索引:
names[1]
要获取项目的属性,只需使用点符号:
names[1].names
制作一个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
与水头最接近的类似物为: 使用
var s=JSON.stringify(名称)
使用s.slice(from,to)从字符串中提取所需的部分代码>-或在其上运行正则表达式以查找所需内容
除此之外,您还可以通过数组索引引用结果中的单个项。您是否尝试了printjson(名称)
?太长了。它打印了无数条记录。我怀疑这是“无数条”,因为聚合结果总共不可能超过16MB。你最终想得到什么?你的最终结果应该是什么样子的?它可能不到无数个,但比我的终端历史记录的大小还要大,所以我仍然看不到关键名称或结构。这就是我希望它看起来的样子,但是“名称”的内容太长了,很难说。我所看到的只是一个名称列表,而无法滚动到足够高的位置来查看键或外部结构。我如何询问JSON对象而不是假设它是什么样子呢?但是在聚合查询中定义JSON对象时,您知道它是什么样子的。您可以在数据上运行一个{code>{u id:“$inst.state”,name:{$addToSet:“$inst.name”}}
此位定义结果数组中的对象。你只需要处理这个对象。