如何在pymongo中传递DBRef

时间:2018-07-27 15:31:03

标签: mongodb pymongo abstract-syntax-tree

我是MongoDB和pymongo的新手(今天)。我在尝试遍历字典并将查询传递给collection.find()时遇到了麻烦。 a079-um-retail可以正常工作,而c080-wp-retail可以产生以下错误。

我尝试过ast.literal_eval,但似乎尝试在找到冒号的地方分解使用DBRef的值。

经过不懈的搜索,我没有遇到任何解决方法。

有人有什么想法吗?

谢谢

代码

for name, qstring in query_strings.items():
    c = httpsessions_collection.find(ast.literal_eval(qstring)).count()

错误

Traceback (most recent call last):
  File "mongo.py", line 144, in <module>
    c = httpsessions_collection.find(ast.literal_eval(qstring)).count()
  File "/Users/paul/anaconda/lib/python3.5/ast.py", line 84, in literal_eval
    return _convert(node_or_string)
  File "/Users/paul/anaconda/lib/python3.5/ast.py", line 62, in _convert
    in zip(node.keys, node.values))
  File "/Users/paul/anaconda/lib/python3.5/ast.py", line 61, in <genexpr>
    return dict((_convert(k), _convert(v)) for k, v
  File "/Users/paul/anaconda/lib/python3.5/ast.py", line 83, in _convert
    raise ValueError('malformed node or string: ' + repr(node))
    ValueError: malformed node or string: <_ast.Call object at 0x10587abe0>

数据子集

query_strings = 
{
    "a079-um-retail":"{'destinationIP':'10.0.0.1'}",
    "c080-wp-retail":"{'parent':DBRef('users',ObjectId('5b59ee1226a0710023533a57'))}"
}

0 个答案:

没有答案