我在system.js集合中有一个简单的存储脚本,名为getAllNotes。
脚本代码:function (x) { return db.notes.find(); }
便笺是保存我想要提取的数据的集合。
eval('getAllNotes()') -工作正常,并返回数据。
db.eval('getAllNotes()') -返回一个包含各种配置的JSON,该字符串与我的集合无关,参见下面。有什么想法吗?有人知道执行eval和db.eval之间的区别吗?
"_mongo" : {
"slaveOk" : false,
"host" : "EMBEDDED"
},
"_db" : {
"_mongo" : {
"slaveOk" : false,
"host" : "EMBEDDED"
},
"_name" : "test"
},
"_collection" : {
"_mongo" : {
"slaveOk" : false,
"host" : "EMBEDDED"
},
"_db" : {
"_mongo" : {
"slaveOk" : false,
"host" : "EMBEDDED"
},
"_name" : "test"
},
"_shortName" : "notes",
"_fullName" : "test.notes"
},
"_ns" : "test.notes",
"_query" : {
},
"_fields" : null,
"_limit" : 0,
"_skip" : 0,
"_batchSize" : 0,
"_options" : 0,
"_cursor" : null,
"_numReturned" : 0,
"_special" : false发布于 2014-09-08 07:24:28
eval接受它执行的一串代码。
db.eval,根据文档,接受要调用的函数和传递给该函数的参数列表。换句话说,在这里去掉单引号':
db.eval(getAllNotes())至于两者之间的区别,文档也指出:
mongo中的助手
db.eval()包装eval命令。因此,helper方法共享底层命令的特性和行为,但有一个例外:db.eval()方法不支持nolock选项。
医生。在要求别人为你做这件事之前,要学习一些重要的东西。
https://stackoverflow.com/questions/25713955
复制相似问题