gpt4 book ai didi

node.js - 将 HashMap 保存到 Mongoose ?

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

我有这样的架构

var csData = new Schema({
csgo_number: Number,
last_updated: Number,
items: {type: Object, default: {}}

}, { minimize: false });

如果项目是一个大列表,我决定将其设为 HashMap 以更快地访问它。

items:{
item1: {
price: 2.00
},
item2:{
price: 1.00
},
item3:{
price: 3.00
}
}

我正在循环浏览一堆 html,当我遇到它时,我正在解析和存储每个新项目。

var item1 = 'awp'
csData.findOne({"csgo_number": 1}, function(err, csgoDB){
csgoDB.items[item1] = {
price: 2.00
}


csgoDB.save(function(err){
if(err){console.log('something went wrong')}
});
});

即使我没有收到任何错误。我的数据没有保存。这是因为我的新商品没有 _id 吗?我用 _id 尝试了它,但它仍然没有保存。

最佳答案

从 mongoose 5.1.0 开始有一个新类型,Map .这样做:

var csData = new Schema({
csgo_number: Number,
last_updated: Number,
items: {
type: Map,
of: String,
default: {}
}
}, { minimize: false });

要使用它,只需:

var item1 = 'awp'
csData.findOne({"csgo_number": 1}, function(err, csgoDB){
csgoDB.items.set('item1.price', 2.00);

csgoDB.save(function(err){
if(err){console.log('something went wrong')}
});
});

获取它:

var item1 = 'awp'
csData.findOne({"csgo_number": 1}, function(err, csgoDB){
var value = csgoDB.items.get('item1.price');
});

关于node.js - 将 HashMap 保存到 Mongoose ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36367655/

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