簡體   English   中英

刪除父貓鼬模式數組內的子模式中的單個行

[英]Removing the individual row in child schema inside the array of parent mongoose schema

我想基於某些字段刪除子模式的行,而模式位於父模式的數組內。 我試過下面的代碼,但是失敗了。任何人都可以解決這個問題//代碼詳細信息use_list是父模式,在該父模式中,其名為frr_list的數組字段具有數組元素作為schemas。 我想基於fren_id刪除該子架構的單個行。 //

 //main parent schema var user_list = new Schema({ user_id: { type: mongoose.Schema.Types.ObjectId, ref: 'user_reg' }, fren_list: [fren_list], block_list: [fren_block_list], frr_list: [fern_req_recieved_list], //asking about this array frs_list: [fern_req_sent_list], }); //child schema var fern_req_recieved_list = new Schema({ //fren req list fren_id: { type: mongoose.Schema.Types.ObjectId, ref: 'user_reg' }, fren_name: String, dt: { type: Date, default: Date.now }, status: { type: String, default: "pending" } //pending, rejected,accepted }); User.list.findOne({ //parent document user_id: currentUserId }, function(err, user) { ///below is child inside the array field and is schema user.frr_list.findOneAndRemove({ fren_id: requestedUserId }, function(err, message) { if (err) { callback(null, false); } else { callback(null, true); } }) }); 

據我了解,您可以像下面這樣刪除frr_list數組的各個項目:

我假設您將通過frr_id(由貓鼬生成的_id)刪除frr_list的各個項目

User.update({ _id: userListId, user_id:currentUserId //filter record by userListId and currentUserId },

{ //now pull the required row from the array based on _id of array $pull: { frr_list: { _id: frr_id } } }, function(err,result){ if(result.ok==1 && result.nModified==1 && result.n==1) //successfully deleted else if(result.ok==1 && result.nModified==0 && result.n==0) //no record exist else //something goes wrong });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM