嘿,伙计们,我想用
mongoose
从
MongoDB
是的。
它甚至还没有普及到第一级。
我会尽力解释下面的情况。
我的文档结构如下:
架构[s]
- UsersSchema
_id : { type: mongoose.Schema.Types.ObjectId },
userData : [{ type: mongoose.Schema.Types.ObjectId, ref: 'DataType' }],
- DataTypeSchema
_id : { type: mongoose.Schema.Types.ObjectId },
data : [{ type: mongoose.Schema.Types.ObjectId, ref:'Data' }],
- DataSchema
_id : { type: mongoose.Schema.Types.ObjectId },
desc: String
填写数据:
-
在用户中>
userData : ["dataTypeID" , "dataTypeID" ]
-
在数据类型中>
data : ["dataID" , "dataID" ]
-
在数据中>
desc: "pending"
问题是:
我正试图得到
desc
领域
Data
在我的
User
文件。
我试过的:
一次尝试
await User.find().populate('userData').lean();
回应:它应该填充
DataType
模型。相反,我在看
[ [Object], [Object] ]
我是说,
[{
_id: 5b37aa4638a07505e809191a,
userData: [ [Object], [Object] ],
__v: 0
}]
2次尝试
await User.find().populate('userData.data').lean();
我试着做一些我不知道能做什么的事情:d
回应:现在它返回
数据类型
模型
[{
_id: 5b37aa4638a07505e809191a,
userData: [ 5b35577759407235a4293020, 5b355fb5f51a0c1de0a3ab3d ],
__v: 0
}]
三试
然后在阅读Mongoose文档之后:
await User.find().populate({
path: 'userData',
model: 'User',
populate: {
path: 'data',
model: 'DataType',
}
}).lean();
响应:get,空数组
userData : []
[{
_id: 5b37aa4638a07505e809191a,
userData: [ ],
__v: 0
}]
笔记
:如果我移除
model: 'User'
从第一次填充得到的响应与
.populate('userData') = [ [Object], [Object] ],
经过大量的调查,我喜欢这样:
mongoose-deep-populate
深填充也像正常的猫鼬填充一样,完全没有效果。
我不明白为什么我不能
数据类型
在
用户
:。(
我希望在这种奇怪的情况下有人能帮我。
谢谢