如何在 mongodb 中同时 运行 $pull 和 $set
How to run $pull and $set at the same time in mongodb
我正在尝试 运行 下面的查询。
db.collection.update_many(
{"id":{"$in":id_list}},
{"$set":
{
"update": {'rank':'abc'}
}
},
{
{ "$pull": { "email": 'test@test.com' } }
}
)
当我 运行 这个时,我得到以下错误。
upsert should be true or false
在做一些研究时,发现我们不能同时使用两个更新。因此,作为一种解决方法,我 运行 单独更新每个更新并且它工作正常。
先这个,
db.collection.update_many(
{"id":{"$in":id_list}},
{"$set":
{
"update": {'rank':'abc'}
}
}
)
然后,
db.collection.update_many(
{"id":{"$in":id_list}},
{
{ "$pull": { "email": 'test@test.com' } }
}
)
这是一个好方法吗?对于这个问题有没有更好的解决方案,我不必对数据库进行 2 次调用?
update 参数应该是单个对象,字段的名称类似于 $set
和 $pull
。如果将它们组合成作为第二个参数传递的单个对象,它应该可以工作,例如:
db.collection.update_many(
{"id":{"$in":id_list}},
{
"$set": {"update": {'rank':'abc'} },
"$pull": { "email": 'test@test.com' }
}
)
我正在尝试 运行 下面的查询。
db.collection.update_many(
{"id":{"$in":id_list}},
{"$set":
{
"update": {'rank':'abc'}
}
},
{
{ "$pull": { "email": 'test@test.com' } }
}
)
当我 运行 这个时,我得到以下错误。
upsert should be true or false
在做一些研究时,发现我们不能同时使用两个更新。因此,作为一种解决方法,我 运行 单独更新每个更新并且它工作正常。
先这个,
db.collection.update_many(
{"id":{"$in":id_list}},
{"$set":
{
"update": {'rank':'abc'}
}
}
)
然后,
db.collection.update_many(
{"id":{"$in":id_list}},
{
{ "$pull": { "email": 'test@test.com' } }
}
)
这是一个好方法吗?对于这个问题有没有更好的解决方案,我不必对数据库进行 2 次调用?
update 参数应该是单个对象,字段的名称类似于 $set
和 $pull
。如果将它们组合成作为第二个参数传递的单个对象,它应该可以工作,例如:
db.collection.update_many(
{"id":{"$in":id_list}},
{
"$set": {"update": {'rank':'abc'} },
"$pull": { "email": 'test@test.com' }
}
)