问题标签 [mongodb-update]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2629 浏览

mongodb - MongoDB 为另一个集合中的每个文档插入一个文档

我有一个users包含一些文档的集合(),如下所示:

我想为user集合中的每个条目创建一个新文档。文档将从这样的通知对象创建:

该集合notifications应如下所示:

有没有办法在 mongodb 请求中做到这一点?

0 投票
1 回答
66 浏览

arrays - MongoDB:如何根据是否找到添加或更新数组对象?

我可以使用什么 mongoDB 操作将对象添加到数组,或者,如果对象已经在数组中,则更新其值之一。

这是我的 mongodb 数据的示例:

我想做的是使用 mongodb-update 更新集合中的所有数据。假设我需要修改所有“BAR”通道的状态。我希望更新为:

  1. 为集合中的所有对象添加一个新的 channelStatus {"channel" : "BAR", "status" : "done"}。

  2. 如果一个对象已经有一个带有 "channel" : "BAR" 的 channelStatus,它只会将该对象的 "status" 更新为 "done"。

如果我简单地使用 addToSet,它会添加重复项,例如:channelStatuses:[{"channel" : "BAR", "status" : "done"}, {"channel" : "BAR", "status" : "error "}]

我可以接受的方法是首先删除旧对象,然后使用 addToSet 添加新对象。但是有没有办法在一次更新中做到这一点?

0 投票
1 回答
158 浏览

arrays - MongoDB Bulk.find.update() 不修改数组对象,只添加新对象

我对 MongoDB $set & $-operators 有疑问。我尝试修改现有数组

我的更新方法看起来像这样(我无法获得准确的副本,因为它是用 Clojure/Monger 编写的):

我的数据看起来像这样:

所以我想要它做的是用_id = 2修改文档的channelStatuses-object的状态。

相反,它在 channelStatuses 数组中创建了一个新对象,文档如下所示:

0 投票
0 回答
809 浏览

mongodb - 如何处理 mongodb 集合中的“lastModified”字段?(只有当文档中的任何值发生更改时,该字段才会更新)

编辑(15/04/2016):根据在这个问题中收到的评论,我认为 mongodb 中没有直接的方法可以这样做。在那种情况下,是否可以使用 MongooseJS 做到这一点?


我正在使用 mongodb,对于一个集合,我需要一个“lastModified”字段,它应该显示最后一次实际修改文档的任何值的时间。这意味着,如果我进行了更新查询并且所有其他值都相同,则不应更新“lastModified”。

示例: 假设我在集合中有一个文档:

当我更新时

那么“lastModified”不应该改变

当我更新时

那么“lastModified”应该改变

如何做到这一点?

在我的情况下,我将多次调用更新操作,并且我不想在这种情况下每次都更改“lastModified”。相反,它应该仅在实际修改“状态”时才更改。

0 投票
1 回答
32 浏览

node.js - MongoDB 更新查询以根据值取消设置特定数组成员

我有一组子文档,如下所示

[我想删除没有'title'子成员的数组成员]

如何编写 mongo 更新查询或 nodejs 函数来获取以下文档集

0 投票
2 回答
57 浏览

node.js - MongoDb 中的条件更新

有没有更好的方法来做这个有条件的更新,只有一个数据库调用,即只使用user.update

0 投票
0 回答
4913 浏览

mongodb - 多更新仅适用于 mongodb 中的 $ 运算符,完全替换文档

我想用multi:true选项完全替换一些文档。

我想做更新操作。像这样:

我收到“多重更新仅适用于 $ 运算符”错误

mongodb官方文档

https://docs.mongodb.com/manual/reference/method/db.collection.update/#multi-parameter 只是告诉我它不能,但没有在这种情况下为什么以及如何做。

有人可以帮我解决这个问题吗?

0 投票
3 回答
25617 浏览

mongodb - 如何将键值对添加到 MongoDB 中的对象

如果我有一个具有以下基本结构的文档:

我是否能够将额外的键:值对“推”到星期一的值?结果将是:

$push运算符似乎仅适用于数组。

0 投票
1 回答
178 浏览

node.js - node.js mongodb 只更新数组中第一个找到的子文档

用户集合:

更新声明

它更新为transaction.id = "m69bkn"而不是"nhaa94" 它只是更新第一个找到的子文档我想我一直在搜索这里

使用 $ 更新数组在 mongodb-native nodejs 中不起作用

https://docs.mongodb.com/manual/reference/operator/update/positional/

使用 NodeJS、MongoDB 和 Monk 更新数组项

0 投票
1 回答
709 浏览

arrays - 使用 $in 和 $addtoSet Mongodb 更新数组

我正在使用$in$addToSet更新我的收藏中的一个数组。假设我有这种文件。

我想更新所有这些文档,所以我有一个 id 数组

并像这样使用数组map

更新我收藏中的所有文档。

我使用$inand$addToSet它可以工作并更新文档,但它只更新最后一个文档。

我不知道为什么。我不想创建一个 for 循环来单独更新它,但在我看来这是我最后的手段。请帮帮我。谢谢!