gpt4 book ai didi

javascript - 删除父 Mongoose 模式数组内子模式中的单个行

转载 作者:行者123 更新时间:2023-12-03 08:46:30 24 4
gpt4 key购买 nike

我想根据某些字段删除子架构的行,并且架构位于父架构的数组内。我尝试使用下面的代码但失败了。任何人都可以解决这个问题吗//代码详细信息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(即由mongoose生成的_id)删除frr_list的各个项目

<p></p>

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

{ //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
});

关于javascript - 删除父 Mongoose 模式数组内子模式中的单个行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32870082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com