mongodb - MongoDb嵌套数组对象在条件匹配和插入不匹配时更新
问题描述
我想在条件匹配时更新嵌套数组对象,如果条件不匹配我需要将对象插入到数组中。以下是我的 UserDevices 集合。
{
"_id": "60f12cdd0132c31d08ad74b2",
"emp_id": "6d725cd2c4ded7bcb480eaa7",
"devices": [
{
"device_type": "MOBILE",
"device_name": "dev-1",
"device_os": "Android",
"device_os_version": "",
"_id": "60f12b4817593b1b903831a3"
}
],
"created_at": "2021-07-14T18:25:43.511Z",
"last_update": "2021-07-16T06:53:17.905Z",
"__v": 0
}
我正在尝试插入或更新设备 obj,但我无法做到。
const device = "MOBILE";
const divs = UserDevices.find({emp_id: e_id, devices: { $elemMatch: { device_type: device}}});
var userDev;
if (divs.length !== 0) {
userDev = UserDevices.findOneAndUpdate({emp_id: e_id, devices: { $elemMatch: { device_type: device}} }, {$set: {devices: data}});
console.log('already there')
} else {
userDev = UserDevices.findOneAndUpdate({emp_id: e_id, devices: { $elemMatch: { device_type: device}} }, {$addToSet: {devices: data}});
console.log('No data found')
}
我无法执行该操作。帮助我任何人
解决方案
推荐阅读
- javascript - 如果元素在数组中,则根据循环检查中锚项的 ID 检查数据 ID
- java - 需要使用 BooleanBuilder 连接多个数组值
- reactjs - 反应在生产中使用什么而不是代理?
- c# - 串行端口中并不总是检测到奇偶校验错误
- javascript - 动态生成的元素内的 JQuery 不运行
- python - 如何将 jupyter notebook 转换为没有单元格符号的 python 脚本?
- json - 在后端使用远程 JSON 填充 WordPress 高级自定义字段
- c# - 更改编辑 | 详情 | 删除操作链接,为 508 位合规性读者提供替代文本
- slack - Slack API:如何确定哪个人类用户拥有旧版 API 令牌
- mysql - MySql 无法更新 DATETIME 字段 - 找不到记录