update tutorial espaƱol node.js mongodb mongoose

node.js - tutorial - Mongodb $ lookup No funciona con_id



mongoose update (2)

Finalmente encontré la solución, es un problema con mi esquema en mangosta con el ObjectId

Yo cambio esto

var Schema = new Schema({ name: { type: String, required: true}, incharge: { type: String, required: true}, });

con este

var Schema = new Schema({ name: { type: String, required: true}, incharge: { type: mongoose.Schema.ObjectId, required: true}, });

y está trabajando

Intentaremos con esta consulta, devuelve la búsqueda está vacía

db.getCollection(''tests'').aggregate([ {$match: {typet:''Req''}}, {$project: {incharge:1}}, {$lookup:{ from: "users", localField: "incharge", //this is the _id user from tests foreignField: "_id", //this is the _id from users as: "user" }} ])

volver json

[ { "_id": "57565d2e45bd27b012fc4db9", "incharge": "549e0bb67371ecc804ad23ef", "user": [] }, { "_id": "57565d2045bd27b012fc4cbb", "incharge": "549e0bb67371ecc804ad21ef", "user": [] }, { "_id": "57565d2245bd27b012fc4cc7", "incharge": "549e0bb67371ecc804ad24ef", "user": [] } ]

Intento con esta publicación, pero no pasó nada cadena de proyecto de agregación MongoDB a ObjectId y con esta búsqueda $ MongoDB con _id como foreignField en PHP

ACTUALIZAR

este es el Documento "usuarios"

{ "_id" : ObjectId("549e0bb67371ecc804ad24ef"), "displayname" : "Jhon S." }, { "_id" : ObjectId("549e0bb67371ecc804ad21ef"), "displayname" : "George F." }, { "_id" : ObjectId("549e0bb67371ecc804ad23ef"), "displayname" : "Franc D." }


Su consulta de búsqueda es perfecta, pero el problema es que está almacenando incharge como cadena en la base de datos, mientras que _id: ObjectId (''theID'') es un Objeto y no solo una cadena y no puede comparar una string ('''') con un object ({}). Entonces, la mejor manera es almacenar la clave incharge como un objeto ( mongoose.Schema.ObjectId ) y no como una cadena en el esquema.