【问题标题】:Upsert of Mongo API not working with Azure Cosmos DBMongo API 的更新不适用于 Azure Cosmos DB
【发布时间】:2026-01-23 21:05:02
【问题描述】:

这段代码在我的本地机器上运行良好。

 Bulk.find({"xyz":23}).upsert().update({$set : 5465}); 

 Bulk.execute(function (err, data) {});

当我将此代码移至 Azure 时,它​​不起作用。我认识到 cosmosDB 不支持 upsert。是 ryt 吗?

参考:
https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support#database-commands

我应该正常替换为查找和插入还是更新?还是有其他可用的解决方案?请帮忙。

【问题讨论】:

    标签: mongodb azure mongoose azure-cosmosdb upsert


    【解决方案1】:

    是的,基于文档 MongoDB query language supportupsert() 命令不受 cosmos db mongo api 支持。据我所知,到目前为止,这里没有捷径。你需要封装方法来判断一个文档是否存在,然后再决定插入还是更新。

    或者,只是声明 Cosmos Document DB SDK 支持 Upsert 方法。案例请参考:How can I perform an UPSERT using Azure DocumentDB?.
    如果您可以进行数据迁移,Cosmos Document DB 是一个不错的选择。

    希望对你有帮助。

    【讨论】:

    • Cosmos DB Mongo API 是否仍然不支持 upsert?我想从 Databricks/Spark 中完成。