sql >> Databasteknik >  >> NoSQL >> MongoDB

Matcha ett arrayfält som innehåller valfri kombination av den tillhandahållna arrayen i MongoDB

Du kan göra detta genom att kombinera flera operatorer:

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

$elemMatch med $nin är att hitta dokument där en enda tags elementet är varken 'Rad' eller 'Cool', och sedan föräldern $not inverterar matchningen för att returnera alla dokument där det inte matchade några element.

Detta kommer dock också att returnera dokument där tags antingen saknas eller har inga element. För att utesluta dem måste du lägga till en kvalificering som säkerställer tags har minst ett element:

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



  1. Redis pub/sub on rails

  2. Mongoose-uppdatering utan återuppringning

  3. HBase Prestandatestning med YCSB

  4. Vilka är de största skillnaderna mellan Redis Pub/Sub och Redis Stream?