Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB使用客户端在meteor中导入的json对象更新集合文档_Json_Mongodb_Meteor - Fatal编程技术网

MongoDB使用客户端在meteor中导入的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

我有一个JSON对象,该对象由作为XLSX导入的客户端导入,并转换为JSON

每个JSON对象都有一个引用和其他几个字段插入到我的集合中

我要做的是,每当客户机导入一个JSON对象时,如果引用已经存在于我的一个集合文档中,我希望使用更新的字段和客户机导入的新字段更新该文档

这就是我试图达到它的方式:

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问题中。谢谢!