首页 > 解决方案 > MongoDB $set 由多个用户设置。冲突?数据会被覆盖吗?

问题描述

前几天我问了以下问题: MongoDB $push to nested child - recursive data structure

基本上,我想在 MongoDB 中编辑/添加数据到递归子级。

为了解决这个问题,我在后端创建了一个函数,如下所示:

  1. 遍历存储在 MongoDB 中的递归数据并找到子 ID
  2. 在后端编辑/添加数据
  3. $set 更新 MongoDB 中的全部数据

我的问题是,两个用户同时更新相同的数据会导致任何问题吗?因为我使用的是 $set 而不是 $push 等。

  async update(cname: string, id: string, elementIndex: number, elements: Element[]) {
    const db = await this.getDB();
    const collection = db.collection(cname);
    const key = 'elements.' + String(elementIndex);
    return new Promise((resolve, reject) => {
      collection.updateOne({ id: id }, { $set: { [key]: elements } }, (err, res) => {
        if (err) {
          reject(err);
        }
        resolve(res);
      });
    });
  }

标签: databasemongodbnosql

解决方案


推荐阅读