我正在尝试从node.js服务器将一些设置保存在mongoDB数据库中。 我在保存这些设置时遇到了麻烦。
我尝试更新文档中对象的单个对象字段:
global: {
Card1: {
indexContent: 1,
indexDisplay: 3,
},
Card3: {
indexContent: 1,
indexDisplay: 8,
},
{...}
}
仅更新其中一张“卡”。
我找不到任何合适的方法来执行此操作,所以现在我正在恢复整个对象,更改要在本地更新的字段,然后将全局设置为整个对象。
db.collection('users').findOne(decoded._id, (err, item) => {
console.log(item);
obj = (typeof item.global === "undefined") ? {} : item.global;
console.log("------------------------------------------");
console.log(obj);
// title here is set to "Card#" with # the number i'm updating.
obj[title] = toAdd;
console.log("------------------------------------------");
console.log(obj);
db.collection('users').update(item,
{$set: {"global": obj}}, (err, result) => {
但是,当我尝试一次又一次地更新3张卡时(从上面的代码中),这是我得到的:
// run with Card6, global not in database.
------------------------------------------
{}
------------------------------------------
{ Card6:
{ indexContent: '3',
indexDisplay: '1',
color: '#e65d59',
lang: 'FR' } }
------------------------------------------
// run with Card3, global in database containing Card6
------------------------------------------
{ Card6:
{ indexContent: '3',
indexDisplay: '1',
color: '#e65d59',
lang: 'FR' } }
------------------------------------------
{ Card6:
{ indexContent: '3',
indexDisplay: '1',
color: '#e65d59',
lang: 'FR' },
Card3:
{ indexContent: '6',
indexDisplay: '4',
color: '#006e60',
lang: 'FR' } }
------------------------------------------
// run with Card1, global in database containing ONLY Card6, Card3
// has not been saved.
------------------------------------------
{ Card6:
{ indexContent: '3',
indexDisplay: '1',
color: '#e65d59',
lang: 'FR' } }
------------------------------------------
{ Card6:
{ indexContent: '3',
indexDisplay: '1',
color: '#e65d59',
lang: 'FR' },
Card1:
{ indexContent: '0',
indexDisplay: '0',
color: '#393a3d',
lang: 'FR' } }
------------------------------------------
我希望整个对象都保存在数据库中。
任何帮助将不胜感激。