gpt4 book ai didi

node.js - Mongoose 从数组中删除子文档

转载 作者:太空宇宙 更新时间:2023-11-03 21:53:01 25 4
gpt4 key购买 nike

    const user = await User.findById(req.user._id);


// finds index of object in the array to be removed
var indexToRemove = -1;
for (var i = 0; i < user.weights.length; i++) {
if (user.weights[i].date === weightInstance.date) {
indexToRemove = i;
}
}

if (indexToRemove > -1) {
// what goes here?
}

user.weights.push(weightInstance);
await user.save();

我想要做的是删除嵌套在用户 (user.weights) 内的 Weight 子文档对象(如果存在),该对象在日期属性中与我添加到 user.weights 数组中的新 Weight 子文档对象相匹配.

用户架构:

const userSchema = new Schema({
googleId: String,
weights: [Weight]
});

权重架构:

const weightSchema = new Schema({
date: String,
weight: Number
});

最佳答案

您可以使用 Array.filter 来完成此操作功能:

  // Get the user from database
const user = await User.findById(req.user._id);

// Use the function filter to remove every user
// matching the date in weightInstance
user.weights = user.weights.filter(x => x.date !== weightInstance.date);

// Save the modified user
await user.save();

关于node.js - Mongoose 从数组中删除子文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385869/

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