MongoDB使用客户端在meteor中导入的json对象更新集合文档
我有一个JSON对象,该对象由作为XLSX导入的客户端导入,并转换为JSON 每个JSON对象都有一个引用和其他几个字段插入到我的集合中 我要做的是,每当客户机导入一个JSON对象时,如果引用已经存在于我的一个集合文档中,我希望使用更新的字段和客户机导入的新字段更新该文档 这就是我试图达到它的方式:MongoDB使用客户端在meteor中导入的json对象更新集合文档,json,mongodb,meteor,Json,Mongodb,Meteor,我有一个JSON对象,该对象由作为XLSX导入的客户端导入,并转换为JSON 每个JSON对象都有一个引用和其他几个字段插入到我的集合中 我要做的是,每当客户机导入一个JSON对象时,如果引用已经存在于我的一个集合文档中,我希望使用更新的字段和客户机导入的新字段更新该文档 这就是我试图达到它的方式: let keys = Object.keys(json.data[0]); let values = Object.values(json.data[0]); Adverts.update({'re
let keys = Object.keys(json.data[0]);
let values = Object.values(json.data[0]);
Adverts.update({'reference': json.data[0].reference}, {$set: {keys: values}}, {upsert: true});
我已经检查了文档和其他答案,似乎upsert和$set是正确的选择,但我不知道我做错了什么
谢谢。键和值是数组,您不能这样做:
。。。{$set:{keys:values}}
相反,请尝试以下方法:
Adverts.update({'reference': json.data[0].reference},
{$set: json.data[0] }, {upsert: true});
这回答了我的问题。但即使它更新了我的字段,也会添加这些字段的副本。我正在使用广告。_ensureIndex{reference:1}不添加重复数据,但仍然添加它们…在执行查询之前和之后提供一个数据示例。也包括查询。最好是在新的SO问题中。谢谢!