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

Mongodb,查找集合是否为空,node.js

宋凌龙
2023-03-14
问题内容

我是Node.js和Heroku的新手,我构建了一个使用node.js并从mongodb实例检索一些数据的小应用程序。我设置了整个程序,但是我的问题是我认为mongodb的语法很简单。

我需要在启动应用程序时知道我的收藏夹中是否包含任何东西,如果没有,则不进行初始化。我尝试调用collection.count(),但返回未定义。

我尝试这样做

mongo.connect(mongoUri, {}, function(err, database) {
  if(!err) {
      db = database;
      console.log("Connected to 'testdb' database, HERE");
      db.collection('tests', {safe:true}, function(err, collection) {
          if (err) {
              console.log("The 'tests' collection doesn't exist. Creating it ");
              populateDB();//This would work for the first time I install the app on heroku
          }
          else { //Collection exists, but nothing is in it, this is where I am lost
             console.log("now I am HERE");
             //I do not know how to mimic this piece of code
             //if((collection("tests").find().toArray.size() == 0 or empty or the equivalent of it) {
             //    populateDB();
             //}
             console.log((collection("tests").find().toArray.size()));
          }
      });
  }
  else {
      console.log("COULD NOT CONNECT TO MONGO: " + mongoUri);
  }
});

任何帮助表示赞赏。


问题答案:

任何访问数据库中数据的MongoDB驱动程序方法(如counttoArray)都通过回调函数参数(而不是通过返回值)异步将其结果提供给调用方,以使它们不会阻塞单个node.js线程。

因此检查将如下所示:

collection.count(function (err, count) {
    if (!err && count === 0) {
        populateDB();
    }
});


 类似资料:
  • 问题内容: 我要实现以下功能: 如何检查向量元素类型? 请注意, 向量可能为空,因此我无法检查第一个元素是“ instanceof”整数还是String … 编辑: 好吧,我脑子里有个念头,我不知道它是否会起作用 我可以按以下方式实现checkType函数: 是否可以检查T是否为整数?! 提前致谢 问题答案: *由于 类型擦除, *泛型类型参数 在运行时不可恢复(某些特殊情况除外)。这意味着在运行

  • 问题内容: 我有以下问题: 我正在将Java驱动程序用于MongoDB 3。 在版本2中,可以执行DB.collectionExists(name)来检查所选数据库中是否存在一个集合。 在版本3中,从DB切换到MongoDatabase,此方法不再存在。 如何查找数据库中是否存在集合?我试图使用listCollectionNames()遍历集合,但这似乎效果很差。 谢谢你的帮助 问题答案: 你是对

  • 我有一个具有如下结构的集合对象: 我该怎么办?非常感谢,很抱歉我的英语不好!

  • 我使用的是spring数据mongodb。 这是我的控制器方法: 控制器: 这里我将字符串列表作为请求参数传递。 我的服务方式是: 存储库代码: 在这里,我在存储库中的查询总是返回空数组[]。我不知道这个查询有什么问题。 我的请求URL是:

  • 问题内容: 我尝试生成一个HQL查询,其中包括带有空Appoinment集合(由OneToMany映射)的用户: 我尝试了几种方式() 但仍然不是我想要查看的结果或HQL或SQL SERVER中的某些错误 注意: 没有JOIN的查询有效: 解决了 另一个JOIN解决了这个问题: 问题答案: 使用应该可以(我希望使用JPQL语法): 如果没有,请显示生成的SQL。 参考文献 Hibernate Co