Estoy buscando una forma de buscar datos que tengan una clave externa. Pero aún no lo he encontrado. He estado atrapado aquí por un día. Aquí está mi modelo
const mongoose = require('mongoose'); const UserCGN = mongoose.Schema({ username: String, cours: String }) module.exports = mongoose.model('UserCGN', UserCGN); const mongoose = require('mongoose'); const Cours = mongoose.Schema({ name_Cours: String, date_Commenc: Date }) module.exports = mongoose.model('dataCours', Cours);Y tengo datos en mi base de datos como este
dans UserCGN
nombre de usuario: "njatotianafiononana@gmail.com" curso: "Inglés"
et dans le dataCours
name_Cours:"Inglés" date_Commenc:2022-01-12T00:00:00.000+00:00
Et voici mon code pour récuperer
var coursM = await CoursModel.aggregate( [ { $lookup: { from: "CGNModel", localField: "name_Cours", foreignField: "cours", as: "inventory_docs" } } ] ) console.log("coursM", coursM);En mi tabla Inventory_docs siempre está vacío. Por favor, ayúdame
¿Están estos dos modelos conectados de alguna manera? Según el fragmento que proporcionó, parece que olvidó hacerlo, y el modelo debería verse así. De esta manera, podría realizar una lookup con foreignField: "_id"
const Cours = mongoose.Schema({ name_Cours: [ { type: mongoose.Schema.Types.ObjectId, ref: 'UserCGN', } ], date_Commenc: Date })Gracias por su ayuda, es mi actualización en el modelo.
const mongoose = require('mongoose'); const Cours = mongoose.Schema({ name_Cours: [ { type: mongoose.Schema.Types.ObjectId, ref: 'UserCGN', } ], date_Commenc: Date }) module.exports = mongoose.model('dataCours', Cours);Y en mi búsqueda de $
var coursM = await CoursModel.aggregate( [ { $lookup: { from: "CGNModel", localField: "_id", foreignField: "cours", as: "inventory_docs" } } ] )Y mis datos así en dataCours
id:62ac815300878fa91f1549b9 name_Cours:Array 0:62a33ab745819dea27c8943d date_Commenc:2022-01-12T00:00:00.000+00:00
Y en usercng, tengo una identificación
_id:62a33ab745819dea27c8943d
Pero el resultado está vacío.