Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Bash Mongo shell脚本输出与Mongo shell输出的差异_Bash_Mongodb_Shell - Fatal编程技术网

Bash Mongo shell脚本输出与Mongo shell输出的差异

Bash Mongo shell脚本输出与Mongo shell输出的差异,bash,mongodb,shell,Bash,Mongodb,Shell,在传递ObjectId时,即使存在匹配项,并且从mongo shell运行相同的命令时,也不会得到输出。。有什么问题吗 mongo myDB --eval 'db.myUserDocColl.find({"_id" : ObjectId("55fd20104ead737a83540a91")},{name:1,email:1,mobileNumber:1,"_id":0});' 输出是 MongoDB shell version: 3.0.2 connecting to: myDB DBQue

在传递
ObjectId
时,即使存在匹配项,并且从mongo shell运行相同的命令时,也不会得到输出。。有什么问题吗

mongo myDB --eval 'db.myUserDocColl.find({"_id" : ObjectId("55fd20104ead737a83540a91")},{name:1,email:1,mobileNumber:1,"_id":0});'
输出是

MongoDB shell version: 3.0.2
connecting to: myDB
DBQuery: myDB.myUserDocColl -> { "_id" : ObjectId("55fd20104ead737a83540a91") }

对于外壳,这两种方法之间存在差异

在shell中运行JavaScript时,
find()
查询返回的光标为:

方法返回一个游标。要访问文档,需要迭代光标。但是,在mongo shell中,如果没有使用var关键字将返回的游标分配给变量,则游标将自动迭代多达20次,以打印结果中的前20个文档

如果在脚本模式下运行相同的JavaScript(即通过命令行选项传递,如
--eval
),则需要显式迭代光标,并使用
print()
printjson()
打印结果:


我还向this example命令行添加了
--quiet
选项,它删除了脚本通常不需要的额外输出(例如shell版本标题和“连接到…”消息)。

您能将manogshell的输出粘贴到这里吗?
mongo myDB --quiet --eval 'printjson(db.myUserDocColl.find({"_id" : ObjectId("55fd20104ead737a83540a91")},{name:1,email:1,mobileNumber:1,"_id":0}).toArray())'