【问题标题】:How use sql "like" in PyMongo?如何在 PyMongo 中使用 sql “like”?
【发布时间】:2012-04-18 14:38:51
【问题描述】:

如何在 PyMongo 中使用 sql “like”?

>>> db.houses.find().count()
11616
>>> db.houses.find({"hid":u"16999"}).count()
1
>>> db.houses.find({"hid":u"/9/"}).count()
0

documentation 表示 MongoDB 中的 sql "like" (SELECT * FROM users WHERE name LIKE "%Joe%") 是 db.users.find ({name:/Joe/})

如果直接向cli-client接口mongodb指定查询,那么一切正常,但在pymongo中不行。

有什么问题?

谢谢。

【问题讨论】:

    标签: python mongodb pymongo nosql


    【解决方案1】:

    pymongo 不支持正则表达式,你必须使用 '$regex' 谓词:

     db.houses.find({"hid":{"$regex": u"9"}})
    

    【讨论】:

    • 如果 9 表示为变量(search_word),语法是什么? db.houses.find({"hid":{"$regex": usearch_word}}) .... ???
    • @vogash:我想是的。请注意,mongodb 使用 PCRE 正则表达式,而不是 python。
    • 它说变量 usearch_word 没有定义
    • 任何答案,您可以发送使用参数而不是硬编码的示例 9
    • 在 python 3.7 中为我工作。非常感谢。
    猜你喜欢
    • 2019-11-27
    • 1970-01-01
    • 2019-04-29
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多