如何解决如何访问在Mongoose方案对象Array的另一个数组中定义的数组元素?
这是猫鼬的User
模式:
var userSchema = new mongoose.Schema({
email: {
type: String,unique: true,required: true,},name: {
type: String,Addtasks: [
{
topic: String,words: Number,keywords: String,website: String,otherdetails: String,exampleRadios: String,deadline: Date,Date: String,fileName: String,Bigpaths: [],],});
module.exports = mongoose.model('User',userSchema);
我想使用/访问Bigpaths
数组内定义的Addtasks
数组,该数组在User
中定义。我已通过mongoDB
页插入的UI
中已经有数据。我正在尝试以下代码,但在控制台中遇到此错误:
data.Addtasks[Object.keys(data.Addtasks).length - 2].Bigpaths.forEach(
(element) => {
// ...
}
)
为
TypeError: Cannot read property 'Bigpaths' of undefined
at \Desktop\grumpytext\routes\index.js:99:71
代码:
const { files } = req;
User.findOne({ email: req.user.email },function (error,data) {
if (error) {
console.log('Three');
} else if (data) {
if (Object.keys(data.Addtasks).length > 1) {
data.Addtasks[Object.keys(data.Addtasks).length - 2].Bigpaths.forEach(
(element) => {
files.forEach((currentElement) => {
if (element.name == currentElement.filename) {
files.pull(currentElement.filename);
}
});
}
);
}
}
});
如何解决此错误或如何访问Bigpaths
数组的所有元素,以便可以通过forEach
循环对其进行迭代?
解决方法
我不确定在这里,但是我认为您需要populate进行操作之前添加任务:
x_y_offset = (
torch.cat((y_offset,x_offset),1).repeat(1,num_anchors).view(-1,2).unsqueeze(0)
)
请注意日志const files = req.files;
User.findOne({email:req.user.email}).populate('Addtasks').exec((error,data) => {
if (error) {
console.log("Three");
}
else
{
if(data)
{
if(Object.keys(data.Addtasks).length > 1)
{
console.log("Addtasks count: " + Object.keys(data.Addtasks).length);
data.Addtasks[Object.keys(data.Addtasks).length - 2].Bigpaths.forEach(element => {
files.forEach(currentElement => {
if(element.name == currentElement.filename)
{
files.pull(currentElement.filename);
}
})
});
}
}
}
});
-如果解决方案不起作用,我建议添加一些打印件,尤其是检查元素计数是否符合预期或对象内的属性是否合适。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。