獲取 MongoDB 查詢中所有文件的大小?


要獲取查詢中所有文件的大小,你需要遍歷文件。我們首先使用文件建立一個集合 -

> db.sizeOfAllDocumentsDemo.insertOne({"StudentFirstName":"John","StudentSubject":["MongoDB","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c0c1edc6604c74817cd7")
}
> db.sizeOfAllDocumentsDemo.insertOne({"StudentFirstName":"Larry","StudentSubject":["MySQL","PHP"],"StudentAge":21});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c0d9edc6604c74817cd8")
}
> db.sizeOfAllDocumentsDemo.insertOne({"StudentFirstName":"Chris","StudentSubject":["SQL Server","C#"],"StudentAge":23,"StudentCountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd3c0fbedc6604c74817cd9")
}

以下是使用 find() 方法顯示集合中所有文件的查詢 -

> db.sizeOfAllDocumentsDemo.find().pretty();

這將產生以下輸出 -

{
   "_id" : ObjectId("5cd3c0c1edc6604c74817cd7"),
   "StudentFirstName" : "John",
   "StudentSubject" : [
      "MongoDB",
      "Java"
   ]
}
{
   "_id" : ObjectId("5cd3c0d9edc6604c74817cd8"),
   "StudentFirstName" : "Larry",
   "StudentSubject" : [
      "MySQL",
      "PHP"
   ],
   "StudentAge" : 21
}
{
   "_id" : ObjectId("5cd3c0fbedc6604c74817cd9"),
   "StudentFirstName" : "Chris",
   "StudentSubject" : [
      "SQL Server",
      "C#"
   ],
   "StudentAge" : 23,
   "StudentCountryName" : "US"
}

以下是獲取查詢中所有文件大小的查詢 -

> var allDocument = db.sizeOfAllDocumentsDemo.find();
> var counter = 0;
> allDocument.forEach(
...   function(myDocument) {
...      counter = counter+Object.bsonsize(myDocument)
...   }
... );

> print(counter);

這將產生以下輸出 -

358

更新於: 2019-07-30

225 瀏覽

開啟你的 職業 生涯

透過完成課程獲得認證

開始吧
廣告