1

次のようなドキュメントがあるとします。

{
  _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 値を持つすべてのドキュメントに一致します。
基本的に、配列内のすべての値に対して正規表現を評価する必要があります。

4

1 に答える 1