sql >> Database teknologi >  >> NoSQL >> MongoDB

Forespørg MongoDB for flere ObjectID'er i Array

Du kan bruge en kombination af mongodb's findOne() og find() markørmetoder sammen med det oprindelige JavaScript map metode til først at hente team-id'erne for en specifik bruger (som vil være en string-array), derefter bruge kortfunktionen til at kortlægge teamets string-id's array til en ObjectId's array, og til sidst forespørge teams-samlingen med det resulterende array som $in operatorudtryk:

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 } });

Output :

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

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



  1. Redis indtastede transaktioner

  2. Er der nogen anbefalet værdi af COUNT for SCAN / HSCAN kommando i REDIS?

  3. MongoDB root bruger

  4. Brug af lagrede JavaScript-funktioner i Aggregation-pipelinen, MapReduce eller runCommand