Mongodb,使用javascript从一组对象中删除一个对象

Posted

技术标签:

【中文标题】Mongodb,使用javascript从一组对象中删除一个对象【英文标题】:Mongodb, Delete one object from an array of objects using javascript 【发布时间】:2021-10-15 21:06:28 【问题描述】:

我正在尝试从我的集合数组中删除一个对象,如下所示。这是MongoDB中的一个集合

在根据chartId删除特定对象之前,我需要检查userId和数组的名称。然后我需要删除对象。

我已经编写了这段代码,但它不起作用。有人会告诉我这段代码到底缺少什么。

           delChartObj.updateOne(
     'userId': userId ,
     $pull:  "Color":  "chartId": req_chart_id   ,
     safe: true, multi: true, function (err, obj) 
        if (err)  res.send.err 

        res.status(200).send( msg: "Deleted Sucessfully" );
    );

在我的例子中,userId = ADAM, array = "Color" and chartID = time 我正在使用猫鼬来执行操作

delChartObj 是模型的对象

 const UserSchema = mongoose.Schema(
userId:  type: String, required: true, unique: true ,
charts:  type: Object ,


 );

【问题讨论】:

【参考方案1】:

在 pull 中试试这个

 $pull:  "Chart.Color.$.chartId": req_chart_id   ,

【讨论】:

什么都没有发生,代码已执行,但尚未从集合中删除 我已经更新了这个问题,基本上你没有提到***属性是图表【参考方案2】:

你应该做 findOneAndUpdate,语法是这样的:

Model.findOneAndUpdate(
< condition>,
 $pull:  "Color.$.chartId": req_chart_id   , // The actual Query
 new: true 
)

【讨论】:

以上是关于Mongodb,使用javascript从一组对象中删除一个对象的主要内容,如果未能解决你的问题,请参考以下文章

如何检查用户是不是使用 jQuery/Javascript 从一组复选框中选中了至少一个复选框?

从一组地理位置计算边界

javascript 从一组数据中找到指定的单条数据的方法 by FungLeo

TERSUS画画一样开发软件 集合类元件介绍-多个对象处理元件1

使用UISegmentedControl从一组或一组值中选择

Javascript排序数组 - 在比较函数中调用函数