MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consultar o MongoDB para vários ObjectIDs no Array


Você pode usar uma combinação de findOne() e find() métodos de cursor junto com o JavaScript nativo map método para primeiro obter os IDs de equipe para um usuário específico (que será um array de strings), então use a função map para mapear o array de IDs de strings dos times para um array de ObjectId e, finalmente, consulte a coleção de times com o array resultante como o $in expressão do operador:
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 } });

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

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