只有当我的查询返回的总计数小于某个阈值数 N 时,我才想将文档插入 mongo。这种查询在 mongodb 中是否可能,或者我应该切换到可以用 case 和查询中的约束条件。
我正在寻找一种解决方案,在这种情况下,这种插入会在大规模和并发的情况下发生,并且仍然不应超过插入阈值。
我可以在关系数据库中找到这种解决方案,还用 SP(存储过程)做了一个 POC,看看是否可以处理。
提前致谢。
可以使用聚合管道来完成。例如:
$group
全部统计结果文档并创建一个文档db.collection.aggregate([
{$match: {your query}},
{$group: {_id: 0, count: {$sum: 1}}},
{$match: {count: {$lt: N}}},
{$project: {_id: 0, doc: newDoc}},
{$replaceRoot: {newRoot: "$doc"}},
{$merge: {into: "collection"}}
])