javascript - MongoDB:如何使用对象数组更新许多对象,每个对象都有自己的_id?
问题描述
我有一个对象数组,其中每个对象都有自己的“_id”。我正在尝试使用 updateMany(),而不是为每个对象调用 updateOne,所以我不会对 mongoDB 提出太多要求。
例如,这是对象:
[
{
_id: 123,
name: "apple",
qty: 2
},
{
_id: 555,
name: "melon",
qty: 1
},
{
_id: 799,
name: "avocado",
qty: 0
}
]
我想用这个对象数组 updateMany(),每个对象必须是集合中的一个Document,我尝试了很多解决方案,但没有一个有效,只使用 insert(),我可以发送整个数组,它会让每个对象都是一个Document,使用insert的问题是,这个对象每天都来,有些值可能会改变,比如name和qty,但_id保持不变。
我尝试了以下
sync function updateMany(client) {
result = await client.db("sample_db").collection("CollectionA")
..updateMany({},
{asd},
{upsert: true});
}
但没有奏效,我尝试了其他解决方案,比如让每个对象使用 $setOnInsert 为 _id 和 $set 其余的..
是否可以在不需要 insert() 或为每个对象调用一次的情况下做到这一点?
我使用的语言是 Javascript,在 Node.JS 上运行。
解决方案
推荐阅读
- html - 修复了侧边栏滚动无法正常工作
- swift - 为什么添加新数据时不调用 .childAdded?火力基地
- html - HTML:图像在移动设备上变得非常小
- python - 根据特定键值组合字典列表
- node.js - 当我尝试运行此代码时,出现以下错误
- c++ - GDB - strcmp 不工作:__strcmp_sse2_unaligned
- android - gradlew 更改 React Native 构建的 jcenter() URL
- python - Django'没有名为'suit.apps'的模块错误
- c# - AJAX 发布到 ASP.NET MVC 控制器操作方法 - 空参数
- java - Android:当我关闭应用程序重新启动时,跟踪 Firestore 中的文档数量