2

为什么 mongodb 在 shell 中返回结果而不在 python 中返回结果。

贝壳:

> db.posts.find({ Body: /html/ }).count()
5524

Python代码:

query = {"Body": '/html/'}
r = mo_db.posts.find(query)
print r.count()
> 0

所有其他查询都可以正常工作,只是 find() 可以正常工作。还有另一种处理斜线的方法吗?
我还测试了 r'/html/' 和 u'/html/'。

4

1 回答 1

2

您正在查询作为字符串的值,而不是实际的正则表达式对象。/.../ 语法是用于构建正则表达式的 javascript 语法糖,但在 python 中,您需要使用re模块来完成。

试试这个:

import re
pattern = re.compile("html")
query = {"Body": pattern}
r = mo_db.posts.find(query)
print r.count()
于 2013-02-11T23:18:14.790 回答