从 Mongo DB 文档的数组中的对象数组中删除一个值
Posted
技术标签:
【中文标题】从 Mongo DB 文档的数组中的对象数组中删除一个值【英文标题】:Delete a value from an array of an object in an array in a Mongo DB document 【发布时间】:2021-11-15 04:10:10 【问题描述】:美好的一天,感谢您抽出宝贵时间回答我的问题!
我正在学习如何编码,这是我在这里的第一个问题:
我有一个 MongoDB 集合,其结构类似于以下示例。每个文档代表一个时期,用户提供了该时期的可用性。
"_id": id,
"period": 20218,
"availabilities": [
"User": id1,
"Username": "Cool Guy",
"Useravailabilities": [9, 13, 14, 28, 29]
,
"User": id2,
"Username": "Nice Guy",
"Useravailabilities": [1, 2, 13, 29, 30]
],
"_id": id,
"period": 20219,
"availabilities": [...],
"_id": id,
"period": 202110,
"availabilities": [...],
我得到一个句点(例如 20218)、一个用户 ID(例如 id2)和一天(例如 13),应该从相应的 Useravailabilities 数组中删除它们。此查询不起作用,有人可以帮忙吗?
DB.updateOne("period": 20218, "availabilities.User": id2 , $pull : "availabilities.$.Useravailabilities": 13 )
提前感谢您,祝您度过愉快的一天
【问题讨论】:
【参考方案1】: DB.updateOne(
period: 20218 ,
$pull: 'availabilities.$[elem].Useravailabilities': 13 ,
arrayFilters: [ 'elem.User': id2 ]
);
【讨论】:
感谢您的回复。现在我得到:Error: Could not find path "undefined.0.User" in schema at castArrayFilters
也许它与我的架构有关? new mongoose.Schema( period: Number, availabilities: [] )
对不起,我写错了代码。我刚改了,你可以再试一次。以上是关于从 Mongo DB 文档的数组中的对象数组中删除一个值的主要内容,如果未能解决你的问题,请参考以下文章
mongo db:从对象数组中获取子数组,其值在单个文档的范围内