如何在猫鼬中填充一个群体

How to populate a group in mongoose

本文关键字:一个 填充      更新时间:2023-09-26

我的猫鼬模式中有这个...与一些团体...

'use strict';
var mongoose = require('mongoose')
, Schema = mongoose.Schema;
var clientSchema = new mongoose.Schema({
    name                                : { type: String },
    offerings                   : [{ type: String }],
    cscPersonnel                : {
        salesExec                   : { type: Schema.Types.ObjectId, ref: 'User' },
        accountGM                   : { type: Schema.Types.ObjectId, ref: 'User' },
},
    },
    netPromoterScore        : { type: Number }
});
module.exports = mongoose.model('clients', clientSchema);

我试图填充 reff dis way...我也在 ref 中填充了(用户为 {路径:'cscPersonnel'})

function getOneById(id){
    var deferred = Q.defer();
console.log("im in get by id" +id);
    model
        .findOne({ _id: id })
        .populate({path:'cscPersonnel'})//one way
           /* 'cscPersonnel salesExec',   //second way
            'cscPersonnel accountGM', */
        .exec(function (err, item) {
            if(err) {
                console.log(err);
                deferred.reject(err);
            }
            else
                console.log(item);
                deferred.resolve(item);
        });
    return deferred.promise;
} // gentOneById method ends

但不幸的是,最终出现了这个错误!!!

强制转换错误:路径"_id"处的值"[对象对象]"的强制转换为对象 ID 失败

{
  "message": "Cast to ObjectId failed for value '"[object Object]'" at path '"_id'"",
  "name": "CastError",
  "type": "ObjectId",
  "value": {
    "salesExec": "56cf5f09245f8a240b30693b",
    "accountGM": "56cf5f09245f8a240b30693b"
  },
  "path": "_id"
}

如何让它解决这个问题....做帮助,提前感谢

请尝试这个

model
    .findOne({ _id: id })
    .populate({path: 'cscPersonnel.salesExec'})
    .populate({path: 'cscPersonnel.accountGM'})
    .exec(function (err, item) {
相关文章: