sql >> Database teknologi >  >> NoSQL >> MongoDB

Matcher et array-felt, som indeholder en hvilken som helst kombination af det leverede array i MongoDB

Du kan gøre dette ved at kombinere flere operatorer:

db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})

$elemMatch med $nin er at finde de dokumenter, hvor en enkelt tags element er hverken 'Rad' eller 'Cool', og derefter det overordnede $not inverterer matchet for at returnere alle de dokumenter, hvor det ikke matchede nogen elementer.

Dette vil dog også returnere dokumenter, hvor tags enten mangler eller har ingen elementer. For at ekskludere dem skal du tilføje en kvalifikator, der sikrer tags har mindst ét ​​element:

db.test.find({
    tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
    'tags.0': {$exists: true}
})



  1. Selleri fejl:result.get timeout

  2. Opret forbindelse til AWS ElastiCache med In-Transit Encryption + Auth fra anden klient end redis-cli+stunnel

  3. Hvordan fungerer sortering i den nye mongodb PECL-udvidelse?

  4. MongoDB ::er Mongo ID'er unikke på tværs af samlinger?