如何有效地进行多次MongoDB旅行

切文·托马斯

一般节点mongodb问题在这里。

我有这个功能:

static addSpaceToCreator = ( userId, spaceId, callback ) => {
        const db = getDb();
        db.collection( process.env.SPACECOLLECTION ).updateOne( { _id: ObjectId( spaceId ) }, { $push: { challengers: ObjectId( userId ) } } );
        db.collection( process.env.USERSCOLLECTION ).updateOne( { _id: ObjectId( userId ) }, { $push: { spaces: ObjectId( spaceId ) } } ).then( r => callback( r ) ).catch( e => callback( e ) );
    };

问题:是否有更好的方法进行这样的多次更改?我不能使用批量,因为文档位于不同的集合中。即使我没有回调,是否还有更好的方法来执行2 .collecting旅行?

感谢您的时间

尼古拉斯敏

使用Promise.all等待的结果并行查询,如下所示:

static addSpaceToCreator = ( userId, spaceId ) => {
    const db = getDb();

    return Promise.all([
      db.collection( process.env.SPACECOLLECTION ).updateOne( { _id: ObjectId( spaceId ) }, { $push: { challengers: ObjectId( userId ) } } ),
      db.collection( process.env.USERSCOLLECTION ).updateOne( { _id: ObjectId( userId ) }, { $push: { spaces: ObjectId( spaceId ) } } ));
    ]);
};

并像这样使用它:

await addSpaceToCreator(4, 2);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有效地对numpy数组进行降序排序?

如何安全有效地使用AtomicReference进行惰性创建和设置?

如何进行排列以有效地调整输出

熊猫:有效地对列名进行大量修改

有效地对元组列表进行分组

如何有效地对MongoDB未索引字段进行复杂查询?

如何有效地多次运行Scala程序?

如何有效地进行多个“不是”过滤

如何有效地对对象进行分组并为每组对象进行计算

有效地在字符串中进行多次替换

如何在python中有效地对列表进行分类

如何有效地进行滤波以获取单元格的值

如何在Rails中有效地对模型进行评分并获取其平均评分

我如何有效地进行亲子配对?

如何有效地进行多线程

Mercurial队列:如何有效地对补丁进行重新排序

有效地在JSONB数组上进行聚合

如何有效地执行floor()和ceil()操作以进行三元搜索?

如何在Unity中有效地对很多RGB颜色进行排序

如何有效地对“ vectorize”函数进行cythonize(numpy库)-python

有效地在多个类别之间进行选择

如何多次有效地将相同的顶点传递给 pyopengl?

如何有效地进行多次随机试验?

如何有效地对跨数据帧的乘法进行配对

如何有效地对 numpy 矩阵进行排序

如何有效地将 Accesss SQL 结果与 SQL Server 结果进行比较?

如何有效地语法

如何有效地进行数据整理以实现excel流程的自动化?

如何有效地对这个列表进行排序?