Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何";标题「;非常长的MongoDB返回变量_Mongodb - Fatal编程技术网

如何";标题「;非常长的MongoDB返回变量

如何";标题「;非常长的MongoDB返回变量,mongodb,Mongodb,我在聚合管道中运行了一些东西,并将其分配给一个变量。我不确定返回对象的结构到底是什么,我想要某种“head”让我逐行查看它,或者一些函数让我查看其中包含哪些对象。这个的语法是什么 var names = db.inst.aggregate( { $group : { _id : "$inst.state", names: {$addToSet: "$inst.name"} }} ).result 我现在如何询问姓名?我假设您在mongo she

我在聚合管道中运行了一些东西,并将其分配给一个变量。我不确定返回对象的结构到底是什么,我想要某种“head”让我逐行查看它,或者一些函数让我查看其中包含哪些对象。这个的语法是什么

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”}}
此位定义结果数组中的对象。你只需要处理这个对象。