sql >> Database >  >> NoSQL >> MongoDB

Query MongoDB voor meerdere ObjectID's in Array

Je zou een combinatie kunnen gebruiken van mongodb's findOne() en find() cursormethoden samen met de native JavaScript map methode om eerst de team-ID's voor een specifieke gebruiker te krijgen (wat een tekenreeksarray zal zijn), gebruik vervolgens de kaartfunctie om de reeks van de tekenreeks-ID's van het team toe te wijzen aan de array van een ObjectId, en ten slotte de teamsverzameling op te vragen met de resulterende array als de $in operatoruitdrukking:

var teams = db.users.findOne({"name": "User1"}).teams;
var obj_ids = teams.map(function (item){ return ObjectId(item)});
db.teams.find({ "_id": { "$in": obj_ids } });

Uitvoer :

/* 0 */
{
    "_id" : ObjectId("5527a9493ebbe2452666c238"),
    "name" : "Team 1"
}

/* 1 */
{
    "_id" : ObjectId("5527b1be3371e3a827fa602c"),
    "name" : "Team 2"
}



  1. MongoDB:aggregatieraamwerk:$match tussen velden

  2. kan mongodb lokale server niet starten

  3. weergave van de som van alle opgehaalde bestanden in mongodb-nodejs-stuurprogramma

  4. retourneer fout oplossen in knooppuntfunctie