我有下面的python函数,它可以查找任何具有相同storeID和countryID的字段,但我只想在updated_by字段为"owner"时更新它们,或者在storeID和countryID不存在时插入它们。
我现在的函数的问题是,它检查它是否被所有者更新过,并且只更新那些(正确的)。但是如果它确实存在,但是被其他人更新过,我不想插入一个。
有人能帮我吗?
` for field in fields:
operations.append(
UpdateOne(
{
'store': field.storeID,
'country': field.countryID,
'updated_by': "owner",
},
{
"$set": {
'value': field.value,
'updated_at': convertDST(datetime.now()),
},
"$setOnInsert": {
'created_at': convertDST(datetime.now()),
},
},
upsert = True
));
database['fields'].bulk_write(operations)`
1条答案
按热度按时间qpgpyjmq1#
根据官方的mongodb文档,upsert不能有两个条件。
upsert-boolean如果为真,update()可以是:
参见:www.example.comhttps://www.mongodb.com/docs/manual/reference/method/db.collection.update/#std-label-update-upsert
所以对我来说,这必须在python中的多个查询中完成。