【发布时间】:2017-05-30 09:13:45
【问题描述】:
我有一个格式如下的 MongoDb 文档
{
"_id": { "$oid": "587b5a985390100541f52d8e" },
"name": "M&G",
"type": "F",
"category": "Multi",
"data": [
{
"date": { "$date": "2014-08-03T22:00:00.000Z" },
"value": 13.172
},
{
"date": { "$date": "2014-08-04T22:00:00.000Z" },
"value": 13.133
}
],
"meta": {
"code": "103039925"
}
}
我用
var cname = // collection name
var docs= [] // array of objecs e.g. {date:<Date> value:<Number> }
var opts = { w: 1, upsert: false, returnOriginal: false };
connection.collection(cname)
.findOneAndUpdate(query, { $addToSet: {data: { $each: docs }} }, opts, function (err, res) {
// do something
});
我的问题是 $addToSet 确保没有重复的对象被添加到集合中 但使用对象相等
此对象有重复的日期,但 $addToSet 不会将其识别为重复
{
"date": { "$date": "2014-08-04T22:00:00.000Z" },
"value": 0
}
我的应用程序要求数组中的任何对象都有唯一的日期。 有没有办法获得它?实际上,如果观察到具有重复日期的对象,它应该更新对象的值
【问题讨论】:
标签: mongodb