Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

477
Views
Quiere obtener el objeto de la colección de referencia por _id en mongodb node.JS

Quiero obtener todos los detalles de un registro en particular por colección de ID de referencia.

 { "_id" : ObjectId("586c8bf63ef8480af89e94ca"), "createdDate" : ISODate("2017-01-04T05:45:26.945Z"), "branch" : { "$ref" : "branchmst", "$id" : "5864ac80fa769f09a4881791", "$db" : "eviral" }, "__v" : 0 }

Este es mi registro de colección. Necesito todos los detalles de la colección "branchmst" donde "_id" es "5864ac80fa769f09a4881791".

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Su colección es un ejemplo del uso de referencias manuales, es decir, incluir el campo _id de un documento en otro documento DBref . Mongoose puede entonces emitir una segunda consulta para resolver los campos a los que se hace referencia según sea necesario.

La segunda consulta sería usar el método agregado que tiene el operador $lookup que realizará una unión externa izquierda a la colección "branchmst" en la misma base de datos para filtrar documentos de la colección "unida" para su procesamiento:

 MyModel.aggregate([ { "$match": { "branch": "5864ac80fa769f09a4881791" } }, { "$lookup": { "from": "branchmst", "localField": "branch", "foreignField": "_id", "as": "branchmst" } }, { "$unwind": "$branchmst" } ])

También puede usar la función populate() en Mongoose dado que ha definido explícitamente las referencias en la definición de su modelo, es decir

 var mongoose = require('mongoose'); var ObjectId = mongoose.Schema.Types.ObjectId; // define the main schema var mySchema = mongoose.Schema({ createdDate: { type: Date, default: Date.now }, branch: { type: ObjectId, ref: 'Branch' } }) // define the branch schema var branchSchema = mongoose.Schema({ name: String, address: String }) // compile the models var MyModel = mongoose.model('MyModel', mySchema), Branch = mongoose.model('Branch', branchSchema); // populate query MyModel.find({ "branch": "5864ac80fa769f09a4881791" }) .populate('branch') .exec(function (err, docs) { //console.log(docs[0].branch.name); console.log(docs); });
over 4 years ago · Santiago Trujillo Report

0

siempre que haya guardado su branch.$id como tipo Schema Object.

 yourRecord.find({}).populate(branch.$id).exec(function(err, data){ console.log(data) })
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!