当前位置: 首页 > 面试题库 >

如何从find方法返回猫鼬结果?

茅星华
2023-03-14
问题内容

我能找到的所有带有猫鼬结果的页面都可以做到这一点:

users.find({}, function(err, docs){
    res.render('profile/profile', {
        users:     docs
    });
});

如何从查询中返回结果,更像这样?

var a_users = users.find({}); //non-working example

这样我就可以在页面上发布多个结果?

喜欢:

/* non working example */
var a_users    = users.find({});
var a_articles = articles.find({});

res.render('profile/profile', {
      users:    a_users
    , articles: a_articles
});

能做到吗?


问题答案:

您正在尝试强制执行同步范例。就是行不通。node.js是单线程的,大部分情况下-
完成io后,便产生了执行上下文。信令通过回调进行管理。这意味着您具有嵌套的回调,命名函数或流控制库,以使外观看起来更好。

https://github.com/caolan/async#parallel

async.parallel([
   function(cb){
      users.find({}, cb);
   },
   function(cb){
      articles.find({}, cb);
   }
], function(results){
   // results contains both users and articles
});


 类似资料:
  • 问题内容: 我有一个使用名为Todo的模型的路由设置,如下所示: 但是,todos.length始终为0,因为它找不到任何结果。当我跑步时: 我确定我已连接到同一数据库。我可以在mongod控制台中看到连接。我的连接位于config / db.js文件中: 我的server.js中的连接如下: 在Mongo Shell中,我得到1个结果。我期望此结果将由find查询返回。有什么我想念的吗?我正在使

  • 问题内容: 我刚开始和猫鼬一起玩。我有以下代码: 将条目添加到数据库中没有问题,但是检索它们时遇到了问题。我对整个工作原理有些困惑。我的理解如下: 有一些架构,就像oop中的类一样,因此只是数据库中记录的蓝图。该模型是一条记录,可以,也许更多,因为我看到您可以向模型添加方法。好吧…我不太了解如何使用它们。你能给我一个线索,他们到底是什么? 返回主题:发出find命令时,它会调用匿名函数,而docs

  • 问题内容: 我已经定义了此路由,但是对它的任何请求都会卡在“待处理”中并永远运行。 当我记录代码时,我看到后面跟着,这意味着find方法中的代码永远不会执行 模型 关于这是为什么的任何想法? 问题答案: 在您致电之前,您的猫鼬查询只会简单地排队。 在启动代码中添加如下代码以进行连接: 在连接字符串中,用数据库名称替换。

  • 问题内容: 在Node.js中使用Mongoose,您可以使用find返回一些字段。例如。 但我似乎无法弄清楚如何使用findOneAndUpdate返回某些字段。 有人做到过吗?我在文档中找不到它。 问题答案: 从说明书,该参数需要一个关键的它,因为还有其他的细节,比如和地方适用。您 还 需要以下选项: 您也可以使用 请注意,没有返回的文档处于处理更新修改 之前 的状态。有时候这就是您的意思,但

  • 问题内容: 我正在研究猫鼬在mongodb中的数据库中列出一个集合中的所有数据: 根据要求: 我正在执行以下代码: 我已经在数据库中输入了条目,但是上面的代码返回了空值。为什么? 编辑:以下代码也返回空: 使用的架构: 问题答案: 您的问题是猫鼬将集合复数。猫鼬正在查询“组织”,但您的数据在mongodb中为“组织”。使它们匹配,您应该很好。您可以通过mongoshell在mongodb中对其重命

  • 问题内容: 我有以下代码: … 循环显示“ et al”,但对m.matches()的调用返回false。而且m.groupCount()返回2。有关发生了什么的任何帮助? 问题答案: 但是对m.matches()的调用返回false。 这是因为要求您将完整的输入与正则表达式匹配。 从Javadoc: 布尔布尔Match() 尝试根据图案匹配整个区域。如果匹配成功,则可以通过开始,结束和分组方法获