gpt4 book ai didi

javascript - 在 Mongoose 模式中将一个数组写入另一个数组中

转载 作者:太空宇宙 更新时间:2023-11-04 01:13:16 26 4
gpt4 key购买 nike

这是 Mongoose 模式:

var userschema = new mongoose.Schema({

user: String,
imagen: [{

tags: [String],

}]

});

我用这个获取标签:

var bodytags = req.body.tags;
var tags = tbags.split(" ");

我从 req.body 获取标签,并将它们全部放入一个数组中。但问题就来了:

var img = usermodel.findOne({ user: req.session.user }, function(err, user){

var img = user.imagen.push({

tags: undefined

});
});

img.tags.push(标签);

然后,我收到一条错误,内容为 TypeError: Cannot call method 'push' of undefined。如何将我的标签数组推送到我的架构的标签数组中?

提前致谢!

编辑:

这就是我想要的结果:

 {

user: randomuser,
imagen: [{
tags: ["one", "two", "three"
}]

}

并且,例如,如果有两个 imagen 对象:

  {

user: randomuser,
imagen: [{
tags: ["one", "two", "three"]
},
{

tags: ["four", "five", "six"]

}]

}

最佳答案

似乎该错误可能是由于变量分配不一致造成的。因此创建了一个独立的示例来测试并且它有效

 var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/images');

var UserSchema = new mongoose.Schema({
user: String,
imagen: [ {
tags: [String]
} ]
});

var User = mongoose.model('User', UserSchema);

var newUser = new User({ user: 'Almypal'});

var bodytags = 'Home basic tutor';
var tagarray = bodytags.split(" ");

newUser.save(function(err, result){
if(err)
{
console.log(JSON.stringify(err));
}
else
{
result.imagen.push({ tags: tagarray });
result.save( function(error, data){
if(error){
console.log(JSON.stringify(error));
}
else{
console.log(JSON.stringify(data));
}
});
}
});

MongoDB 现在有以下文档

 { "_id" : ObjectId("50e84425862a2af616000001"), "imagen" : [ { "tags" : [ "Home", "basic", "tutor" ] } ], "user" : "Almypal" }

希望这有帮助。

关于javascript - 在 Mongoose 模式中将一个数组写入另一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14171723/

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