mongoose populate多表关联查询,查询结果错误,急!在线等
发布于 7 年前 作者 codeBaby666 2924 次浏览 来自 问答

从用户表里的关联公司表里的company_name_cn字段的值,插入到用户表里的companyNameCn字段,这是Schema下面companyNameCn的定义, const xbnuserSchema = new Schema({ user_name: { type: String , index: true}, password: String, mobile: String, email: String, user_id: Number, create_date: String, admin: {type: String, default: ‘管理员’}, status: {type: Number, default: 1}, //1:待审核、 2:通过、3:驳回 companyNameCn: {type:Schema.Types.ObjectId,ref : “Xbncomp”}, avatar: {type: String, default: ‘default.jpg’}, city: String, }); 按照文档上populate方法,返回的数据现在没有companyNameCn,库里的数据是mysql导入的,不是自己创建的,下面是查询的代码,这是什么原因造成的呢,急!在线等 await AdminModel.Admin.find(query).skip((pageNo - 1) * pageSize).limit(pageSize).sort({‘create_date’:-1}).exec(function (err, response) { console.log(“response:” + response); AdminModel.Admin.populate(response,[{ path: ‘companyNameCn’, select: ‘company_name_cn’}],function(err,resData){ console.log(“resData:” + resData); }); });

4 回复

试试

model.find({}).sort().limit().populate('companyNameCn', {company_name_cn:1})

@nnliang 这种写法是查询,我那是往查询结果里插入从另一表找到的数据,用法不同,这篇文章里写的很清楚https://segmentfault.com/a/1190000002727265

@codeBaby666 那我不懂你要干什么了,单纯的“往查询结果里插入从另一表找到的数据” 自己做数据处理加进去不就行了,非要在数据库层次做这个操作?

@nnliang 已经改成分别查询不同的表,只是想用下文档给的方法,看看哪个效率高

回到顶部