我刚开始使用mongodb,尝试查询嵌套文档时遇到了困难。我有两个模式:
var LinkSchema = new mongoose.Schema({
url: String,
name: String
});
var UserSchema = new mongoose.Schema({
name: String,
links: [LinkSchema]
});
正如您所看到的,我只是试图构建一个简单的书签工具。每个用户都有一个名称和一组链接。每个链接都有一个名称和一个URL。
现在,我想做的是例如,在某人的链接数组中查看链接是否已经存在。我希望能够像这样做(尝试获取弗拉德的链接集合,然后查看查询链接是否已经属于集合):
app.get("/:query", function(req, res){
User.findOne({"name":"vlad"}, function(err, user){
user.links.find({"url":req.params.query}, function(err, foundLinks){
if(foundLinks){
res.send("link already exists!");
} else {
res.send("link doesn't exist!");
}
});
});
});
当然,这个代码不起作用,因为显然我不能做一个“user.links.find()”。我想我可以只做一个user.links.map来提取url然后对其运行成员查询。但我认为这远非正确的解决方案。肯定有一种方法可以使用DB查询本地化地执行此类操作。有人能帮忙吗?谢谢!
foundLinks
而不是foundUsers
? - geevee