计算名称以给定字符串开头的集合的文档

我有一个Mongo DB“ db1”,它具有类似以下的集合:

  • 巧克力-2019年10月31日
  • 巧克力30-十月-2019
  • 巧克力-2019年10月29日
  • 巧克力-2019年10月28日
  • 巧克力-2019年10月27日
  • Cookie-2019年10月31日
  • Cookie 2019年10月30日
  • Cookie-29-Oct-2019
  • Cookie-2019年10月28日
  • Cookie-2019年10月27日
  • Cookie-26-十月-2019
  • 2019年10月31日吧
  • 2019年10月30日吧
  • 2019年10月29日吧
  • 2019年10月28日吧
  • 2019年10月27日吧

我要数:

  • 仅巧克力和饼干的馆藏数量
  • 收藏品文档数量:仅巧克力和曲奇。

使用MongoChef Shell控制台,我可以像这样在'db'中计算每个集合的所有文档:

db.getcollectionNames()
.forEach(function(collection) 
{ resultCount = db[collection].count(); 
  print("Results count for " + collection + ": "+ resultCount);
  });

但不知道如何仅对定义的集合列表进行计数。

tjlyu 回答:计算名称以给定字符串开头的集合的文档

尝试一下。

已更新集合数计数。只需将其复制粘贴到控制台中即可。     var chCount = 0;     var coCount = 0;

db.getCollectionNames().forEach(function(collection) { 
if(collection.startsWith("Chocolate") || collection.startsWith("Cookie")){  
    if(collection.startsWith("Chocolate"))
        chCount=chCount+1;
    else if(collection.startsWith("Cookie"))
        coCount=coCount+1;
    resultCount = db[collection].count();    print("Results count for " + collection + ": "+ resultCount);   
}
});
print("Chocolate = "+chCount+",Cookie = "+coCount+".");   

您也可以将其写入.js文件并使用以下命令执行。

mongo --port=<port> <database> <any authentication if required> ex.js
本文链接:https://www.f2er.com/3168318.html

大家都在问