mongodb - Mongoose Populate 不返回相关数据
问题描述
我有以下型号:
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const imputerSchema = new mongoose.Schema({
dninie: {
type: String,
trim: true,
},
name: {
type: String,
trim: true,
required: true,
},
lastname: {
type: String,
trim: true,
required: true,
},
second_lastname: {
type: String,
trim: true,
},
phone : {
type: Number,
unique: true,
trim: true,
},
qr: {
type : String,
unique: true,
default: Date.now
}
});
module.exports = mongoose.model('Imputer', imputerSchema)
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
const imputationSchema = new mongoose.Schema({
qr: {
type: String,
trim: true,
required: true,
ref: 'Imputer',
},
imputation_date: {
type: String,
default: Date.now,
required: true,
},
coordinates: {
type: [Number, Number],
index: '2d',
},
});
module.exports = mongoose.model('Imputation', imputationSchema);
我试图进行这样的查询:
Imputation.find()
.populate('imputer.qr')
.exec()
.then(docs => console.log(docs));
我也试试
Imputation.find()
.populate('imputer')
.exec()
.then(docs => console.log(docs));
但我只得到了关于插补模型的文件,没有插补模型上的字段。
解决方案
更改imputationSchema
如下:
const imputationSchema = new mongoose.Schema({
qr: {
type: mongoose.Types.ObjectId, ref: "Imputer",
trim: true,
required: true,
},
// other fields...
});
然后像这样查询:
Imputation.find()
.populate('qr')
.exec()
.then(docs => console.log(docs));
推荐阅读
- ios - Fastlane 导出 ipa 失败
- arrays - vba制作汇总表
- replication - 复制因子超过 cockroachdb 中的节点数
- c# - 来自非关系数据库的 EF Core 5.0 关系
- c# - 进入我的 SQL 数据库后,我可以从文件夹中删除 CSV 文件吗?
- python - 如何在没有 root 权限的服务器上安装 Python?
- javascript - 我在 javascript 文件中的 Visual Studio 代码中遇到错误
- javascript - 为什么我在 Bootstrap 中的轮播控件不起作用?
- r - 根据 r 中的条件拆分字符串
- reactjs - 在 React Native (expo) 中获取实际的设备方向锁定