gpt4 book ai didi

node.js - 如何使用 Mongoose 将动态字段添加到现有集合

转载 作者:搜寻专家 更新时间:2023-11-01 00:13:12 24 4
gpt4 key购买 nike

我正在尝试创建一个名为 products 的 mongodb 集合,其中我有字段(id、name、price 和 properties),现在不同的产品具有不同类型的属性,例如 iphone 与 nike 鞋相比具有不同的属性集。那么如何定义模式并使用 mongoose 动态添加新的键值对。

{
"_id":"001",
"name":"iphone 5",
"price":$650,
"properties":{
'weight':2.3,
'talktime': '8 hours',
'battery type': 'lithium'
}
}


{
"_id":"002",
"name":"nike shoes",
"price":$80,
"properties":{
'size':10,
'color':black
}
}

最佳答案

看看 Mongoose 的混合模式类型:http://mongoosejs.com/docs/schematypes.html .如果您为属性 ({}) 指定该类型,它将允许向其中保存任何内容。

例如:

var ProductSchema = new Schema({
name: String,
price: String,
properties: {}
});
mongoose.model("Product", ProductSchema);


var Product = mongoose.model("Product");
var product = new Product({
"name": "iphone 5",
"price": "$650",
"properties": {
"weight": 2.3,
"talktime": "8 hours",
"battery type": "lithium"
}
});
product.save();

运行上面的代码后,数据库现在包含这个文档:

{
"name" : "iphone 5",
"price" : "$650",
"properties" : {
"battery type" : "lithium",
"talktime" : "8 hours",
"weight" : 2.3
},
"_id" : ObjectId("53b35ca575e9d7a40de0edb7"),
"__v" : 0
}

关于node.js - 如何使用 Mongoose 将动态字段添加到现有集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24517358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com