从元素数组中删除数据

时间:2016-04-29 17:33:32

标签: node.js mongodb mongoose

我正在使用mongoose从我的mongoDb元素数组中的元素数组中删除数据,但我无法做到

我的架构看起来像这样

    var schema = mongoose.Schema({
       name : String,
       surgeries :  [{
                    patient_name : String,
                    trays : [{
                           tray_id : { type: mongoose.Schema.Types.ObjectId, ref: 'trays' },
                            removed_time : Date,
                            removed_by : { type: mongoose.Schema.Types.ObjectId, ref: 'users' },
                    }],
                    traydata : Array,
                }]
 },{strict : false} );

我试图从托盘数组中删除数据

我已经完成了两种方法,但它没有效果

1)我已经使用过拉,我已经写了这样的查询

   Ots.update({'surgeries.trays.tray_id':id},{ $pull: { 'surgeries.trays' : result[0] } }, {safe: true },function(err,obj){
                                console.log(obj);
                            })

显示这样的输出

   { ok: 1, nModified: 0, n: 1 }

2)我已经通过使用ID找到了该对象,我找到了该托盘的索引并拼接了该托盘,我保存了该对象,当我循环时,它正在为一个托盘对象工作我得到了一个错误版本和对象未找到错误

我在架构文件中使用{versionKey:false}它没有显示错误,当我试图删除多个记录时,它只删除了第一个

谢谢你, Babji

1 个答案:

答案 0 :(得分:0)

nModified:0表示执行Ots.update时没有更新任何内容。

您想要在托盘阵列中删除哪些数据?

如果您尝试移除某个id的托盘,请尝试以下操作:

Ots.update({'surguries'},{$pull:{trays: {tray_id: theTrayYouWantToRemove}}})