sql >> Databáze >  >> NoSQL >> MongoDB

Odpovídající pole pole, které obsahuje libovolnou kombinaci poskytnutého pole v MongoDB

Můžete to udělat kombinací více operátorů:

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

$elemMatch pomocí $nin je hledání dokumentů, kde jeden tags prvek není ani 'Rad' ani 'Cool' a potom nadřazený $not invertuje shodu, aby vrátil všechny dokumenty, kde neodpovídaly žádnému prvku.

To však také vrátí dokumenty, kde tags buď chybí, nebo nemá žádné prvky. Chcete-li je vyloučit, musíte přidat kvalifikátor, který zajistí tags má alespoň jeden prvek:

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



  1. Fulltextové vyhledávání s váhou v mangustách

  2. Práce s klíči v redis

  3. Najít klíč podle hodnoty

  4. Otázky týkající se Redis a Node.js a Socket.io