次のようなドキュメントがあるとします。
{
_id: 'abc',
extIds: ['org1:123', 'org2:xyz', 'org3:7q9']
},
{
_id: 'def',
extIds: ['org1:234', 'org2:tuv']
}
「org3」の extId 値を持たないものと一致させたい。簡単な正規表現を試しました:
db.ext_ids.find({
extIds: {$regex:'^(?!org3\:)'}
})
ただし、これは「org3:...」以外の extId 値を持つすべてのドキュメントに一致します。
基本的に、配列内のすべての値に対して正規表現を評価する必要があります。