【发布时间】:2012-05-25 09:16:38
【问题描述】:
在 MongoMapper 中,我可以使用以下查询根据正则表达式匹配搜索项目:
Foo.where(:name => /Foo.*/)
如何搜索其name 字段与/Foo.*/ 不匹配的项目?
【问题讨论】:
标签: mongodb mongomapper
在 MongoMapper 中,我可以使用以下查询根据正则表达式匹配搜索项目:
Foo.where(:name => /Foo.*/)
如何搜索其name 字段与/Foo.*/ 不匹配的项目?
【问题讨论】:
标签: mongodb mongomapper
您可以使用$not
db.customers.find( { name : { $not : /acme.*corp/i } } );
【讨论】:
如果您使用的是 python (pymongo),这将不起作用,您会收到一个关于如何使用 BSON 正则表达式的令人困惑的错误。
但是,它将直接接受 python 正则表达式对象:
db['collection'].find({'name': {'$not': re.compile("^__TEST")}})
【讨论】:
或者 mongomapper 中类似的东西也可以用于搜索在电子邮件字段中找不到电子邮件域的情况,如果为 false 则批准:
non_org_email_users = org.users.where(
:email => { '$not' => /@#{org.official_email}/i },
approved: false).all
【讨论】: