$in
検索用の要素の配列と列内のそれらの要素の一致を含むmongodbのコレクション内の列を検索する方法はcaseInsensitive
?
16043 次
6 に答える
12
$elemMatchを正規表現検索で使用できます。たとえば、次のコレクションで「 blue 」色を検索してみましょう:
db.items.save({
name : 'a toy',
colors : ['red', 'BLUE']
})
> ok
db.items.find({
'colors': {
$elemMatch: {
$regex: 'blue',
$options: 'i'
}
}
})
>[
{
"name": "someitem",
"_id": { "$oid": "4fbb7809cc93742e0d073aef"},
"colors": ["red", "BLUE"]
}
]
于 2012-05-22T11:19:24.483 に答える
3
これは私にとって完璧に機能します。
コードから、次のようなカスタム クエリを作成できます。
{
"first_name":{
"$in":[
{"$regex":"^serina$","$options":"i"},
{"$regex":"^andreW$","$options":"i"}
]
}
}
これは、クエリの後に mongo で次のように変換されます。
db.mycollection.find({"first_name":{"$in":[/^serina$/i, /^andreW$/i]}})
「$nin」も同様。
于 2017-01-03T09:29:21.060 に答える
0
これは、配列のデータから複数の条件(正規表現)を使用した大文字と小文字$in
を区別しない検索(クエリ)です。使用しましたが、大文字と小文字を区別しない検索はサポートされていません。
サンプルデータ
{
name : "...Event A",
tags : ["tag1", "tag2", "tag3", "tag4]
},
{
name : "...Event B",
tags : ["tag3", "tag2"]
},
{
name : "...Event C",
tags : ["tag1", "tag4"]
},
{
name : "...Event D",
tags : ["tag2", "tag4"]
}
私のクエリ
db.event.find(
{ $or: //use $and or $or depends on your needs
[
{ tags : {
$elemMatch : { $regex : '^tag1$', $options : 'i' }
}
},
{ tags : {
$elemMatch : { $regex : '^tag3$', $options : 'i' }
}
}
]
})
于 2015-03-31T12:01:59.663 に答える