Node.js NodeJS-MongoDB计算开销

Node.js NodeJS-MongoDB计算开销,node.js,performance,mongodb,Node.js,Performance,Mongodb,我有一个场景需要更新2个mongodb集合。 共有2个系列:广告、喜欢 场景1:我在likes表中插入一个带有ad.\u id和用户的文档。\u id插入成功后,我使用查询db.likes.find({ad.\u id}).count()用like的长度更新广告的属性likescoount。之后,我将查询db.ads.find()以获取所有广告记录。广告的文件中已经有了相应的喜欢数 场景2:我只在likes表中插入带有广告id和用户id的文档。之后,我将查询db.ads.find()以获取所有广

我有一个场景需要更新2个mongodb集合。 共有2个系列:广告、喜欢

场景1:我在likes表中插入一个带有ad.\u id用户的文档。\u id插入成功后,我使用查询db.likes.find({ad.\u id}).count()用like的长度更新广告的属性likescoount。之后,我将查询db.ads.find()以获取所有广告记录。广告的文件中已经有了相应的喜欢数

场景2:我只在likes表中插入带有广告id和用户id的文档。之后,我将查询db.ads.find()以获取所有广告记录,并处理每个广告文档,以便在运行时使用查询db.likes.find({ad.\u id}).count()设置LikeCount字段


我想知道哪种情况在计算和处理方面的开销更大,因为所有的Ads查询在一天中只会被点击一次。

第一个用例似乎有竞争条件。此外,请记住MongoDB没有事务。所以你必须在你的“场景”中间处理可能的失败。话虽如此,我认为这是一个例子:他们有许多不同的方式来解决你的问题。但是如果不知道你的要求,很难说。例如,您真的需要实时更新“like counter”吗?或者几个小时的延迟可以接受吗?你真的需要精确的计数,或者一些近似值就足够了吗?我不需要实时的类似计数器