Users.findOneAndUpdate({
user_id: user_id
}, {
$push: {
"chat.$[item].record": {
"role": 'me',
"item_record": item_record,
"item_time": item_time
}
}
}, {
arrayFilters: [{
"item":{
$type:"object"
},
"item.ta_id": ta_id
}]
}, function(err) {
if (err) {
...........
} else {
...........
}
})
})
在先前的本地测试中没有任何问题,就是利用arrayFilters,简单地插入数据到特定的位置,但是现在报错了,非常离谱...
{ MongoError: exception: cannot use the part (chat of chat.$[item].record) to traverse the element ({chat: [ { is_hiden: false, ta_id: "1619759159250", ta_img: "/public/image/users/test.png", me_id: "1619758422666", record: [ { role: "ta", item_record: "(你好)" } ], char_time: 1619941310624.0 } ]})
本地和服务器的数据库版本,表结构的设计是完全一样的吗?
注意版本问题,arrayfilter似乎只有在3.6版本以上才能使用
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y