问题标签 [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.
mongodb - 如何更新Mongodb中子文档数组中的元素
尝试在 Mongo 中更新子文档数组中的元素时遇到问题。如果我考虑集合“资源”中的以下文档
我想更新"item4"
一些其他值,比如"item5"
for"resource_id" = 2
以下语句给了我一个错误:如果没有包含数组的相应查询字段,则无法应用位置运算符。
db.resource.update({"resources.resource_id": 2, "resources.resource_list": "item4"}, {$set: {"resources.$.resource_list.$": "item5"}})
对此的任何帮助将不胜感激。
mongodb - mongodb更新100万条记录
我有一个包含 100 万份文档的集合。每个文档都有一个 ip 字段。我有一个节点函数,它可以通过将 ip 作为其参数传递给我国家代码。我将获取所有记录,运行我的节点函数,将返回的国家名称插入回文档中。并立即更新它们。但是,mongodb 有 16M 数据的限制。
前
后
我的问题是如何安全快速地更新这 100 万条记录。
mongodb - Casbah MongoDB,如何在单个操作中向多个文档中添加和删除值?
搜索后,我无法弄清楚如何对单个字段执行多次更新。
我有一个带有“标签”数组字段的文档。在我开始更新之前,每个文档都会有随机标签。在单个操作中,我想添加一些标签并删除一些标签。
以下更新运算符返回错误“指定的修饰符无效:$and”
如何在单个操作中向多个文档中的数组添加和删除值?
mongodb - Mongo 更新同时排除某些字段
这听起来类似于 Mongo $set。在这种情况下,我想更新文档(更新和/或删除字段),但忽略字段 creatorName,使其保持不变。
示例文档:
更新为:
如果我使用 set,creatorName 保持不变(好)并且 firstName 和 lastName 被更新(好),但 middleName 没有被删除(坏)。Set 限制在更新期间删除字段的能力。
这可以在查询中完成吗?没有$未设置?
mongodb - 为什么我的 MongoDb 查询在更新时插入了嵌入文档?
这是我的 MongoDB 查询:
显然我不能使用“artists.$.soundcloud_toggle”来更新艺术家数组中的所有艺术家文档:
“$ 运算符可以更新与 $elemMatch() 运算符指定的多个查询条件匹配的第一个数组元素。http: //docs.mongodb.org/manual/reference/operator/update/positional/ ”
我很高兴多次运行查询来更改数组的索引,以便在与查询匹配的每个事件中设置每个艺术家的 soundcloud_toggle 属性,例如
问题是:当有人说,艺术家数组中只有一个艺术家文档并且我使用“artists.1.soundcloud_toggle”运行查询时,它将使用单个属性将艺术家文档插入到艺术家数组中:
(我已经声明了“upsert:false”,无论如何默认情况下应该是假的)
当那里没有现有文档时,如何阻止查询插入文档并设置 soundcloud_toggle:false?如果艺术家存在于给定的艺术家数组索引中,我只希望它更新属性。
node.js - 使用带有 Upsert 的更新为 true 时未设置默认值
我有以下用户模型:
如您所见,“created”字段采用当前日期的默认值,以便在创建新用户时自动设置。
发布用户详细信息时,我使用以下查询:
使用findOneAndUpdate
with的目的upsert: true
是要么返回现有配置文件,要么创建一个新配置文件。它还会根据发布的数据更新任何字段。
但是,那created
字段每次都会更新为当前日期,即使未发布创建的字段。如何确保该字段只设置一次?
编辑
来自数据库的示例对象:
事实证明,created
即使在使用 upsert 创建新对象时,也没有设置该字段。Mongoose 只是根据模式返回当前日期,即使它在文档中不存在。
所以,现在的问题变成了:如何确保 usingupsert
为参数中未提供的字段创建默认值?
mongodb - MongoDB查找和修改请求更新
我的 MongoDB 数据库中的产品具有以下结构:
我的pymongo
脚本从一个商店转到另一个商店,我尝试做以下事情:
- 如果产品不在数据库中:使用当前 store_id 的当前价格和日期添加有关产品的所有信息。
- 如果产品在数据库中,但我没有当前 stroe 的任何条目:添加一个
stores
包含当前价格、日期和 store_id 的条目。 - 如果产品在数据库中,并且我有当前商店的价格条目,但当前价格不一样:为当前 store_id 添加一个带有新日期和价格的新条目。
是否可以在一个请求中完成所有操作?现在我一直在尝试以下方法,但并不真正知道如何处理stores
和prices
案例。
也许这不是构建我的数据库的最佳方式,我愿意接受建议。
python - 为什么 mongodb 更新方法会创建一个扩展名为 '_keys' 的新集合?
我使用 mongoDB 方法 update 来修改名为annotations
. 我用 Python 脚本编写的命令是:
orthologs
必须修改该字段以包含UniProt
由名为 的变量给出的新子字段orthologs
。
令人惊讶的是,创建了一个名为 的新集合annotations_keys
。它只包含一个文件:{ "_id" : "UniProt", "value" : null }
.
正常吗?如果不是,问题是什么?
mongodb - mongodb更新匹配的文档失败
mongoimport 导入 10000 个文档,_id 为 6 长随机字符串
因为 mongoimport 不能指定数据类型,所以像“123456”这样的字符串被导入为 int 类型。所以我手动删除原件并将它们重新插入为
因为0的默认类型是Double,所以我把它们改成int:
似乎 6 文档更改失败,我通过以下方式验证更改:
更新仅修改由 mongoimport 导入的文档,但不保留我手动插入的文档,为什么?
mongodb - 向集合中的当前文档添加新字段时,Meteor.users.update 访问被拒绝
我正在寻找向当前文档添加一个新字段(将来将使用 $push 填充的数组)但出现错误update failed: MongoError: Cannot apply $push/$pushAll modifier to non-array
我正在研究 Meteor.users 集合。
运行的代码是: