sql >> Database >  >> NoSQL >> MongoDB

Is het mogelijk om subdocumenten rechtstreeks op te vragen met behulp van mangoest?

Ja, u kunt de titel van het bericht direct vinden in het gebruikersmodel. zoals hieronder

User.find({"posts.title": "Cats are cool"}, (err, users) => {
  if(err) {
    // return error
  }
  return res.send(users)
})

Dat zal de gebruiker met alle berichten retourneren, niet alleen de overeenkomende berichttitel. Dus om alleen de overeenkomende titel van het bericht terug te geven, kunt u $ . gebruiken positionele operator. vind deze zoekopdracht leuk

User.find({"posts.title": "Cats are cool"},
  {username: 1, "posts.$": 1}, // add that you need to project
  (err, users) => {
    if(err) {
      // return error
    }
    return res.send(users)
})

die alleen overeenkomende berichten retourneren



  1. Standaarddatabase instellen voor MongoDB-shell

  2. Wat is een TransientTransactionError in Mongoose (of MongoDB)?

  3. ElastiCache-integratie starten

  4. NodeJS + MongoDB:insertOne() - haal het ingevoegde document op van result.ops