sql >> Base de Datos >  >> NoSQL >> MongoDB

Consultar MongoDB para múltiples ObjectID en Array

Podría usar una combinación de findOne() y find() métodos de cursor junto con JavaScript nativo map para obtener primero las identificaciones del equipo para un usuario específico (que será una matriz de cadenas), luego use la función de mapa para asignar la matriz de identificaciones de cadena de los equipos a una matriz de ObjectId, y finalmente consulte la colección de equipos con la matriz resultante como el $in expresión del 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 } });

Salida :

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

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