如果未找到值,则使用 mongoose 将对象添加到数组中,否则更新字段
Posted
技术标签:
【中文标题】如果未找到值,则使用 mongoose 将对象添加到数组中,否则更新字段【英文标题】:Adding an object to an array using mongoose if value not found, otherwise updating fields 【发布时间】:2017-09-18 04:48:56 【问题描述】:我正在使用 mongoose 来处理 MongoDB。
我有以下文件
Posts:Array
0:Object
_id:58f9b2c903110b2c543fb7d1
postName:Test1
postText:Test2
postCount:0
status:true
我想做一个 HTTP 请求,根据 postName 更新或插入一个对象到这个数组。
例如,如果我通过以下内容
postName:Test1
postText:Test3
postCount:50
status:false
比 postName 匹配,我希望它只更新 postText、postCount 和状态。 如果 postName 不匹配数组中的任何一个对象,我希望它插入一个新对象。
这个问题可能与旧问题重复,我搜索并找不到答案。 我也尝试使用 $setOnInsert 但无法正常工作。
【问题讨论】:
使用这个db.collection.update( <query>, <update>, upsert: true )
什么是正如 Veeram 在 cmets 中回答的那样,
答案可以在这里找到
PyMongo Update document with multiple records
在单个查询中无法插入嵌入的数组文档
【讨论】:
以上是关于如果未找到值,则使用 mongoose 将对象添加到数组中,否则更新字段的主要内容,如果未能解决你的问题,请参考以下文章
如果未找到 ID,则 Mongoose 更新文档或插入新文档(Express REST API)
Mongoose:如果值存在于对象数组中的数组中,则过滤数据
将对象数组添加到突变 react-graphql-apollo-mongoose 时,“无法读取未定义的属性 'get'”