Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Cách đếm số lượng khóa (key) trong một tài liệu MongoDB

MongoDB không cung cấp hàm built-in để đếm số key trong một document. Bạn cần viết một đoạn script đơn giản để thực hiện việc này.

Ví dụ minh họa

Tạo collection numberofKeysInADocumentDemo và chèn một tài liệu:

> db.numberofKeysInADocumentDemo.insertOne({
    "UserName": "John",
    "UserAge": 21,
    "UserEmailId": "john12@gmail.com",
    "UserCountryName": "US"
});

Hiển thị tài liệu:

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

Kết quả:

{
    "_id" : ObjectId("..."),
    "UserName" : "John",
    "UserAge" : 21,
    "UserEmailId" : "john12@gmail.com",
    "UserCountryName" : "US"
}

Sử dụng vòng lặp for...in trong MongoDB shell để đếm:

> myDocument = db.numberofKeysInADocumentDemo.findOne({});
> numberOfKeys = 0;
> for (i in myDocument) { numberOfKeys++; }
> print("The document has " + numberOfKeys + " Keys");

Kết quả:

The document has 5 Keys

Giải thích: Kết quả là 5 vì bao gồm cả trường _id được MongoDB tự động tạo. Nếu chỉ muốn đếm các field do người dùng định nghĩa, hãy trừ đi 1.

Cách thực hiện trong ứng dụng (Node.js/Python)

Trong code ứng dụng, bạn có thể dùng Object.keys(doc).length (JavaScript) hoặc len(doc) (Python) sau khi truy xuất document.