在 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/