【问题标题】:MongoDB query from node.js (express-coffeescript-mongodb)来自 node.js 的 MongoDB 查询(express-coffeescript-mongodb)
【发布时间】:2013-05-14 01:42:53
【问题描述】:

我是使用 noSQL 数据库进行数据库查询的新手,我有一个快速的问题。

基本上我想检索所有“publishedImage”设置为“true”的字段的“名称”。我想将结果存储在一个数组中,然后使用类似 while 循环的方法将无序列表中的名称打印到视图文件夹中的 .jade 模板文件中。

我需要什么查询才能做到这一点?我知道用 php 和 mysql 会怎么做,但是在查看节点教程后,我开始时更加困惑。

如果我能得到一些帮助,我将非常感激!

谢谢大家,

乔尔。

【问题讨论】:

    标签: node.js express coffeescript pug mongodb-query


    【解决方案1】:

    您似乎在问一些事情。

    如何使用 mongodb 进行查询?

    mongoDB 中的查询与 SQL 查询并没有太大的不同。 mongoDB 文档有一些关于查询如何在系统中运行的good examples。当您向下滚动该页面时,您会发现它实际上与您在 mysql 中所做的并没有太大不同。

    每个 mongo 模块都有不同的语法来构造和执行查询。但是,最终,他们都需要执行查询,如我链接的 mongo 文档中所示。当您将 mongodb 语法与特定于模块的语法进行比较时,您可以看到这一点。例如,如果我们想找到一些东西:

    您可以通过模块(必须)模拟 mongodb 查询来查看调用。确实,mongoose 将查询称为“条件”,但如果您阅读 mongoose 文档,您会发现条件语法与 mongoDB 语法基本相同。

    如何存储结果?

    这是一个更复杂的问题。我列出的 node-mongodb 和 mongoose find 函数都返回查询结果,每个函数都提供了一些处理返回的选项:事实上,我链接到的 node-mongodb 示例明确向您展示了如何将 .toArray 调用链接到 @ 987654334@ 查询,瞧!您正在使用查询结果数组。 Mongoose 提供了使用回调的选项,因此您可以在收到错误和结果时处理错误和结果,结果使用模型使用的模式进行格式化。 (Mongoose 模式和模型是另一个主题,如果您选择使用 mongoose 模块,您应该在此处通过文档和搜索进行详细探索。)

    如何循环遍历数组?

    这不是一个真正的 mongoDB 问题,而是一个 javascript 问题。让我在 StackOverflow 上为您指出这两个答案:

    1. Loop through an array in javascript
    2. Loop through javascript object

    另外,您可能想查看underscorejs 库,它随附underscore 节点模块。 underscorejs 中的eachmap 函数在这种情况下很方便。

    【讨论】:

      【解决方案2】:

      我也来自 mysql 数据库。我实际上是在使用 mongoose 从 node.js 管理 mongoDB ,只需阅读此文档即可轻松学习: http://mongoosejs.com/docs/index.html

      查找功能是您想要的功能。像这样:

      MyStuff.find({ publishedImage: true }, function(error,result){
        if(!error){
          // Do stuff with result
        }
      });
      

      "result" 将是一个包含所有您想要的文档的数组。

      Mongoose 有很多选择,但是通过链接中的文档,您可以学习基础知识。 希望对你有帮助。

      【讨论】:

      • 非常感谢!今晚我会看看这个!
      猜你喜欢
      • 2011-12-07
      • 2013-08-01
      • 1970-01-01
      • 2014-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多