首页 > 解决方案 > 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')
  }

我无法执行该操作。帮助我任何人

标签: mongodbmongodb-query

解决方案


推荐阅读