javascript - 是否可以在地图模式类型中填充对象?
问题描述
我的猫鼬模型中有模式类型 Map 。在这张地图中,每个元素都引用了另一个模型。我知道可以在数组中填充属性,但是 Map 类型呢?因为像“map_type_attribute.some_attribute_to_populate”这样的嵌套不起作用。:)
这是我的模型:
const Mongoose = require('mongoose');
const parameter = Mongoose.Schema({
definition: {
type: Mongoose.Schema.Types.ObjectId,
ref: 'Definition',
},
value: {},
}, {_id: false});
const schema = Mongoose.Schema({
model: {
type: Mongoose.Schema.Types.ObjectId,
ref: 'Model'
},
name: String,
objectid: Number,
externalId: String,
properties: Mongoose.Schema.Types.Mixed,
parameters: {
type: Map,
of: parameter
}
});
module.exports = Mongoose.model('Element', schema);
这就是我试图填充定义字段的方式:
const request = Element.find(query, projection);
request.populate('parameters.definition');
request.exec( (err, docs) => {
...
解决方案
此功能是在 Mongoose 5.10.3(2020 年 9 月)中添加的。您只需用 . 来表示地图中的每个元素$*
。
在您的示例中,这将是:
const request = Element.find(query, projection);
request.populate('parameters.$*.definition');
request.exec( (err, docs) => {
推荐阅读
- kubernetes - 在注释中使用 ingressClassName 而不是 kubernetes.io/ingress.class 时,ingress-nginx 不起作用
- asp.net-core - 如何修补 Windows Server 上第三方应用程序的 .NET Core 安全漏洞?
- kubernetes - Kubernetes:从 yaml pod 定义文件启动 webserver
- android - Android资源限定符不适用于模拟器
- javascript - 需要帮助修复错误,使用 javascript 将 .hidden 类添加到 div
- git - 使用 lint-staged 来检查这个提交是否可以构建?
- amazon-web-services - DAX 集群 - 它如何知道要与哪个 DynamoDB 表通信?
- clojure - 如何在 clojure 中添加或更新列表?
- python - 如何知道为什么序列模型会错误地预测 X 射线图像?
- postgresql - Azure Powershell - 为 PostgreSQL 服务器实例重命名数据库