3

MongoMapperでは、次のクエリを使用して、正規表現の一致に基づいてアイテムを検索できます。

Foo.where(:name => /Foo.*/)

nameフィールドが一致しないアイテムを検索するにはどうすればよい/Foo.*/ですか?

4

3 に答える 3

5

使用できます$not

db.customers.find( { name : { $not : /acme.*corp/i } } );
于 2012-05-25T09:26:49.077 に答える
0

Python(pymongo)を使用している場合、これは機能しません。BSON正規表現の使用方法について混乱を招くエラーが発生します。

ただし、Python正規表現オブジェクトを直接受け入れます。

db['collection'].find({'name': {'$not': re.compile("^__TEST")}})
于 2013-05-28T23:23:20.823 に答える
0

または、mongomapperのこのようなものは、電子メールドメインが電子メールフィールドに見つからず、falseの場合に承認された場合を検索するためにも機能します。

non_org_email_users = org.users.where(
  :email => { '$not' => /@#{org.official_email}/i }, 
  approved: false).all
于 2019-09-19T02:42:55.690 に答える