我正尝试通过服务器端使用feathersjs方法更新来更新我的文档,如下所示:
context.app.service('myDocumens').update({
_id: obj._id,
'data': {
"$not": {
"$elemMatch": {
'year': 2018
}
}
}
}, {
$addToSet: {
'data': {
'position': 'senior',
'group': 1,
'comment': "",
'year': 2018
}
}
}).then(result => {
console.log(result)
});}
我在下面的示例文档中显示:
{
"_id": ObjectId("...."),
"firstName": "Adam",
"lastName": "Brown",
"data": [
{ "position":"senior","group":1,"comment":"","year":2018 },
{ "position":"junior","group":0,"comment":"","year":2017 }
]
}
使用上面的查询,我尝试将新对象添加到数组中,其中包含字段'year':2018(如果此数组中不存在该字段,但是在运行此查询到数组后的所有时间都添加新对象,尽管该数组已经包含一个字段为'year'的对象:2018。怎么了?
当我在mongoDb shell中运行以上查询时,它工作正常。
答案 0 :(得分:0)
我注意到的主要事情是您错误地使用了feathersjs adapter.update API。对文档ID的引用应在对象之外。尝试切换到此签名:
context.app.service('myDocumens').update(id, data, params);
有关更多信息,请参见API文档。 https://docs.feathersjs.com/api/databases/common.html#adapterupdateid-data-params