Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 使用Mongoose(MongoDB)查询嵌套文档大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我开始使用MongoDB并且很难尝试查询嵌套文档。我有两个模式:

var LinkscheR_556_11845@a = new mongoose.scheR_556_11845@a({
    url: String,name: String
});

var UserscheR_556_11845@a = new mongoose.scheR_556_11845@a({
    name: String,links: [LinkscheR_556_11845@a]
});

如您所见,我只是想建立一个简单的书签工具。每个用户都有一个名称和一组链接。每个链接都有一个名称一个网址。

现在,我要做的是例如,查看某人的链接数组中是否已存在链接。我希望能够做这样的事情(尝试获取vlad的链接集合,然后查看查询链接是否已经属于集合):

app.get("/:query",function(req,res){
  User.findOne({"name":"vlad"},function(err,user){
    user.links.find({"url":req.params.query},foundLinks){
      if(foundLinks){
        res.send("link already exists!");
      } else {
        res.send("link doesn't exist!");
      }
    });
  });
});

当然,这段代码不起作用,因为显然我不能做“user.links.find()”。我想我可以只做一个user.links.map来提取网址,然后针对它运行一个成员资格查询。但我认为这远非正确的解决方案。必须有一种方法可以使用数据库查询本地执行此类操作。有人可以帮忙吗?谢谢!

解决方法

您可以像这样在mongoose中查询嵌入的文档

User.find({'linkS.Url':req.params.query},foundUsers){
      // ---
   });

并找到属于用户“vlad”的链接,你可以写

User.find({name:'vlad','linkS.Url':req.params.query},foundUsers){
      // ---
   });

这样就可以了。

大佬总结

以上是大佬教程为你收集整理的node.js – 使用Mongoose(MongoDB)查询嵌套文档全部内容,希望文章能够帮你解决node.js – 使用Mongoose(MongoDB)查询嵌套文档所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。