我有以下架构:
var userSchema = mongoose.Schema({
local : {
email : String,
password : String,
movies : [{
moviename : String,
rating : Number
}],
}
});
我的问题是:
我可以将条目一个接一个地保存。即我可以按顺序保存电影,而不是同时保存所有电影(数组条目)吗?换句话说,电影阵列可以动态增长吗?
我想做的是:
user.movies = { moviename : "Top Gun",
rating : 80};
user.save(function (err) {
if (err)
console.log("Error in saving");
res.end(0);
});
我相信保存是有效的,因为我没有错误,但我迷失了如何检索数组中的条目。 有人可以给我一个例子或参考如何访问条目。此外,关于限制的任何其他参考,例如重复数组条目(相同的电影)。
谢谢。
答案 0 :(得分:1)
是的,您可以逐个添加电影。
1)您可以在不检索项目的情况下添加电影:
userSchema.findOneAndUpdate({_id:...},
{$push:{"local.movies":
{movieName:"movie Name", rating:5}}},
{'new':true}, function(err,doc){ ... })
2)使用mongoose你可以检索项目,添加电影并保存:
user.local.movies.push({ moviename : "Top Gun", rating : 80});
user.save(function (err) {
if (err)
console.log("Error in saving");
res.end(0);
});
关于访问电影数组,如果您检索用户文档,则可以使用user.local.movies来访问电影