在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() to pymongo.eval()`传递javascript,并得到与我从原始外壳命令中返回的相同的响应。
发布于 2015-07-17 06:40:48
这是因为您正在使用不是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']https://stackoverflow.com/questions/31322388
复制相似问题