问题标签 [findandmodify]
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 中的 FindAndUpdate 与更新
我正在使用 Update 和 FindAndModify 但现在我已经读到 Update 和 FindAndModify 是原子的(http://docs.mongodb.org/manual/tutorial/model-data-for-atomic-operations/),
因此,如果两者都可以通过查询项目并更新它来完成相同的工作,那么有什么区别?
我在 StackOverflow 上找到了几个答案,但没有一个提到 Update 也是原子的:在 MongoDB 中 findAndModify 和 update 有什么区别?
mongodb - 我可以在带有 MongoDB 的深层嵌套文档上使用 findAndModify 之类的东西吗?
我的MongoDB 中有带有以下文档的 Collection上下文(上下文中有一些用户具有角色)
有没有办法使用findAndModify向用户添加(或删除)角色。
node.js - mongodb 中的 findAndModify 错误 - nodejs - 错误代码 17287
我收到以下错误:
MongoError:异常:nextSafe():{ $err:“无法规范化查询:B adValue 错误排序规范”,代码:17287 }
mongodb - 有没有办法只获取找到的文档作为 findAndModify 的结果而没有包装信息
我有一个findAndModify
MongoDb 请求。mongo 服务器将文档包装在:
有没有办法只从value
密钥中获取对象?
node.js - node.js/MongoDb 中的 findAndModify 用法
我有一个集合,其中显示了用户列表以及他们最喜欢的电影。这是一个示例数据集...
现在给定_id545c08dcc4d2b8a0243dd4db
和一部电影
如果我需要在 Node.js/MongoDB 中将其添加到 watch_movies,我相信唯一的方法是
- 使用 Find 查找文档
- 通过附加到watched_movies 数组对找到的文档执行findAndModify。
第 2 步基于此处的示例 http://mongodb.github.io/node-mongodb-native/markdown-docs/insert.html
有一个更好的方法吗 ?具体来说,我可以避免步骤#1 吗?
这是我在做第 2 步的方法。但我不得不执行步骤#1 来获取“watched_movies”元素,然后将新电影附加到它以构建movielist
我也愿意接受有关改进此架构设计的建议。
mongodb - findAndModify 是否有效锁定文档以防止读取冲突?
假设文档的结构如下:
{_id:"session-01", status:"free"}
并且有 2 个并发操作执行以下findAndModify
操作:
db.collection.findAndModify({query:{status:"free"}, update:{status:"occupied"}, new:true})
我想要实现的是只有一个操作可以获得“免费”一个,并对其执行锁定,所以另一个操作必须为空。这就是 findAndModify 的作用吗?
mongodb - mongo db 添加来自另一个集合的子文档
我有两个收藏奖团队赢得了团队列表。我想将整个奖项作为子文档进行 ETL 到其他(团队)中,并进行一些小的转换,但我只从奖项中获得一个子文档到团队中。
这是我使用的代码。Teams 有一个唯一的数字索引,看起来像最终文档减去 accolade 子文档。但是,数组中只添加了一个 accolade 子文档。我错过了什么?
示例奖项(团队可以赢得多个奖项,荣誉是奖项的集合,以便以后汇总):
以下是仅添加一项荣誉的团队变成的样子:
我本来希望将两个荣誉添加到数组中。我是否需要将奖励对象 ID 携带到团队子文档中?
mongodb - 初始值不为零的MongoDB计数器
我想创建一个从 1000 开始的计数器。
即 upsert 一个 mongodb 文档如下
- 如果文档不存在,则使用值 1000 创建它
- 如果文档已经存在,则增加值 +1
以下不起作用:
有没有办法告诉 upsert 对于插入,它需要 $set 1000,但对于更新,它需要 $inc 1 ?
java - 如何插入包含列表的 mongo(或 spring-mongo)文档
我正在尝试确定是否有一种方法使用 spring-mongodb(甚至使用 mongo java API)来更新包含列表的文档,以便列表的元素始终是更新插入的值的联合。
假设我有以下类(为了简化事情而组成):
此外,假设我只获得最新阅读书籍的更新,但我想在数据库中保留所有阅读书籍的完整列表。所以我想做的是插入一个 Patron (with booksRead) 如果它不存在或更新他们的 booksRead 如果 Patron 已经存在。
所以,第一个 upsert 'John Doe' 不在集合中,所以文档被插入并且看起来像这样:
约翰重读了《愤怒的葡萄》,也读了《人鼠之间》。在阅读书籍时尝试插入 2 本书,但我只想在阅读列表中插入“Of Mice and Men”,因此文档如下所示:
我尝试过的一切似乎都表明需要将调用分开,一个用于插入,另一个用于更新。Update.set 适用于初始加载(插入),但会在第二次更新时替换完整列表。$addToSet 适用于更新,但抱怨尝试在初始插入时插入“非数组”。
更新:
这似乎是 Spring-mongodb 的问题。我可以通过 mongo java api 调用实现上述目标,但在使用 spring 等效项时它会失败。(至少到 spring-data-mongodb 1.6.2)
mongodb - 如何使用golang在mongodb中findAndModify一条记录?
我想要这样的东西:
- 在 mongo db 中找到一条记录
old_record
- 将此记录更新为
new_record
- 返回
old_record
我写这样的代码:
find
但是,我认为update
应该是一个atomic
操作,所以我的代码是不安全的。
我怎样才能在原子操作中做到这一点