一般节点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] 删除。
我来说两句