MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose znajdź dokumenty, jeśli tablica zawiera wartość

Jest kilka sposobów na osiągnięcie tego. Pierwszy to $elemMatch operator:

const docs = await Documents.find({category: { $elemMatch: {$eq: 'yourCategory'} }});
// you may need to convert 'yourCategory' to ObjectId

Drugi to $in lub $all operatorzy:

const docs = await Documents.find({category: { $in: [yourCategory] }});

lub

const docs = await Documents.find({category: { $all: [yourCategory] }});
// you can give more categories with these two approaches 
//and again you may need to convert yourCategory to ObjectId

$in jest jak OR i $all jak I. Aby uzyskać więcej informacji, sprawdź ten link:https://docs.mongodb.com /podręcznik/odniesienie/operator/zapytanie/wszystko/

Trzeci to aggregate() funkcja:

const docs = await Documents.aggregate([
    { $unwind: '$category' },
    { $match: { 'category': mongoose.Types.ObjectId(yourCategory) } }
]};

z agregacją() otrzymujesz tylko jeden identyfikator kategorii w swojej tablicy kategorii.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mapreduce w rodzimym sterowniku mongodb ruby

  2. Rozwiązanie do zbiorczego znajdowania i modyfikowania w MongoDB

  3. Zagregowane zapytanie o dopasowanie Mongodb z priorytetem pełnego dopasowania

  4. Błąd:nie można odczytać właściwości „close” wartości null

  5. node.js moongodb dwa znaleziska