我需要更新 mongodb 中的记录,其中新值取决于记录中另一个字段的值。
例如给定以下集合
{id: 1, list: []}
{id: 2, list: [6]}
{id: 3, list: []}
{id: 4, list: [6]}
{id: 5, list: []}
我想能够说:
if ('id' is in [1, 3, 5]) => add the value '6' to 'list'
else => remove the value '6' from 'list'
结果将是:
{id: 1, list: [6]}
{id: 2, list: []}
{id: 3, list: [6]}
{id: 4, list: []}
{id: 5, list: [6]}
这可以在 2 个更新查询中完成,如下所示,但我试图在 1 个中完成:
db.collection.update({$in: [1, 3, 5]}, {$addToSet: {list: 6}})
db.collection.update({$in: [2, 4]}, {$pull: {list: 6}})
代码是在 Java 中的。