Я начинаю с mongodb и с трудом пытаюсь запросить вложенные документы. У меня две схемы:
var LinkSchema = new mongoose.Schema({
url: String,
name: String
});
var UserSchema = new mongoose.Schema({
name: String,
links: [LinkSchema]
});
Как вы можете видеть, я просто связываю, чтобы создать простой инструмент закладок. Каждый пользователь имеет имя и набор ссылок. Каждая ссылка имеет имя и URL-адрес.
Теперь то, что я пытаюсь сделать, это, например, посмотреть, существует ли ссылка в каком-то ключевом массиве. Я хотел бы иметь возможность сделать что-то вроде этого (пытаясь получить коллекцию ссылок vlad, а затем посмотреть, есть ли ссылка на запрос в коллекции или нет):
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-запросы. Может кто-нибудь помочь? Спасибо!