Node.js 调用findOne和populate时,为值强制转换到objectid失败

Node.js 调用findOne和populate时,为值强制转换到objectid失败,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我正在使用Mongoose创建一个Mongodb数据库,其表结构与下面列出的Group.js文件中的表结构类似。当我的代码点击findOne调用时,我收到下面列出的cast错误: 对于路径\“\u id\”处的值\“{FirstName:'John',\n MiddleName:null,\n LastName:'Doe'\n Address:'1234 Anywhere St.}\”,对ObjectId的强制转换失败 Group.js(模型文件) GroupRepository.js(获取组及

我正在使用Mongoose创建一个Mongodb数据库,其表结构与下面列出的Group.js文件中的表结构类似。当我的代码点击findOne调用时,我收到下面列出的cast错误:

对于路径\“\u id\”处的值\“{FirstName:'John',\n MiddleName:null,\n LastName:'Doe'\n Address:'1234 Anywhere St.}\”,对ObjectId的强制转换失败

Group.js(模型文件)

GroupRepository.js(获取组及其关联用户列表的方法调用)

在注入GroupRepository类之前对组模型进行声明

findGroupPopulateUsers(paramList, cb){
        this.group.findOne(paramList).populate('users').exec(function (err, entity) {
            if (!err)
                cb(err, entity);
           else
                cb(err);
        });
    }
const user = require('../models/Group');
下面是我传递给findGroupPopulateUsers方法调用的参数列表

{"groupType": "free"}
我不知道是什么触发了这个错误?我试着去看医生。在mongoose网站上处理子文档数量。请让我知道关于如何填充子文档的规则中缺少什么


我注意到一件奇怪的事情,因此子文档似乎会返回,如果不指定“.populate(…)”方法调用,我就不会得到错误。但是,如果我尝试访问用户子文档的“\u id”字段,它总是返回未定义的字段。

我认为应该为findOne函数添加.lean()

this.group.findOne(paramList).populate('users').lean().exec(function (err, entity) {
       if (!err)
           cb(err, entity);
       else
           cb(err);
       });

你能将你的参数列表添加到你的问题中吗?可以。我将添加到代码部分的底部。你能为用户和组架构添加一个示例文档吗?Vijay你是什么意思?在我尝试此操作后,问题仍然存在。我仍然注意到,当我删除“.populate('Users')”调用时,没有收到错误消息。但是,用户子文档中不存在“\u id”字段。我认为默认情况下为每个集合自动生成了\u id,还是排除了子文档?
this.group.findOne(paramList).populate('users').lean().exec(function (err, entity) {
       if (!err)
           cb(err, entity);
       else
           cb(err);
       });