javascript - Pymongo .eval() 与 Mongo shell --eval

标签 javascript python mongodb pymongo

在 pymongo 中使用 .eval() 的这个命令等效于什么?

mongo localhost/mydb --quiet --eval "printjson(db.getCollectionNames())"

因为这似乎不起作用并且什么都不返回:

from pymongo import MongoClient    
client = MongoClient("mongodb://localhost")
db = client.mydb     
myjs = "printjson(db.getCollectionNames())"
print db.eval(myjs)

是的,我了解 db.collection_names() 的工作原理,我特别需要了解如何使用 printjson() 将 javascript 正确传递给 pymongo.eval()`并得到与原始 shell 命令相同的响应。

最佳答案

这是因为您使用的不是 JavaScript 函数的 printjson()。请改用 return

In [6]: c = Code("function(){return db.getCollectionNames()}")

In [7]: db.eval(c)
Out[7]: 
['bar',
 'baz',
 'col',
 'collection',
 'demo',
 'first_use',
 'sCriteria',
 'spam',
 'system.indexes',
 'test',
 'v']

关于javascript - Pymongo .eval() 与 Mongo shell --eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31322388/

相关文章:

javascript - 在 Javascript 中对数组、变量或对象进行排序

javascript - 尝试提交带有签名图像的 PDF 表单

python - 如何使用stepic.encode()

python - 替换python 2.7中的部分字符串

python - 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

javascript - 使用 node.js 驱动程序将 Mongo 集合导出到 json

mongodb - 在实时系统上将Elasticsearch从0.90.7升级到1.7.1

javascript - 如何改变 Canvas 本身的形状?

javascript - 如何清除 Javascript 中的单选按钮?

node.js - Socket.io NodeJS 聊天 : Why do messages emit multiple times?