sql >> Database >  >> NoSQL >> MongoDB

MongoDB:Voorwaardelijk selecteren uit de ene verzameling op basis van een andere verzameling

U kunt onderstaande aggregatiequery proberen.

db.animals.aggregate([ [
  {
    "$lookup": {
      "from": "meals",
      "localField": "lastMeal",
      "foreignField": "id",
      "as": "last_meal"
    }
  },
  {
    "$unwind": "$last_meal"
  },
  {
    "$match": {
      "last_meal.created": {
        "$gt": 20171001
      }
    }
  }
])

Meer info hier .

U kunt $project . gebruiken met uitsluiting na $match fase om het antwoord op te maken om samengevoegde velden uit te sluiten. Iets als { $project: {"last_meal":0} }



  1. Vind alle dubbele documenten in een MongoDB-verzameling op een sleutelveld

  2. MapReduce-resultaten lijken beperkt tot 100?

  3. Moet ik rechtstreeks toegang krijgen tot mongodb?

  4. kruistabelquery of virtuals om gegevens op te slaan met mangoest