Tôi đang phân tích nguồn dữ liệu MongoDB để kiểm tra chất lượng của nó. Tôi tự hỏi nếu mỗi tài liệu chứa các thuộc tính time
: vì vậy tôi sử dụng hai lệnh nàyMongoDB: kích thước kết quả truy vấn lớn hơn kích thước bộ sưu tập
> db.droppay.find().count();
291822
> db.droppay.find({time: {$exists : true}}).count()
293525
Làm thế nào tôi có thể có yếu tố hơn với một lĩnh vực nhất định so với các yếu tố chứa trong toàn bộ bộ sưu tập? Có chuyện gì vậy? Tôi không thể tìm ra sai lầm. Nếu cần thiết, tôi có thể đăng cho bạn cấu trúc dự kiến của tài liệu.
Phiên bản Mongo Shell là 1.8.3. Phiên bản Mongo Db là 1.8.3.
Cảm ơn trước
Đây là cấu trúc dự kiến của mục tài liệu:
{
"_id" : ObjectId("4e6729cc96babe974c710611"),
"action" : "send",
"event" : "sent",
"job_id" : "50a1b7ac-7482-4ad6-ba7d-853249d6a123",
"result_code" : "0",
"sender" : "",
"service" : "webcontents",
"service_name" : "webcontents",
"tariff" : "0",
"time" : "2011-09-07 10:22:35",
"timestamp" : "1315383755",
"trace_id" : "372",
"ts" : "2011-09-07 09:28:42"
}
thats hoàn toàn lạ, bạn có thể cập nhật cấu trúc tài liệu .... – RameshVel
Tôi có thể Chèn, Cập nhật và Đọc bộ sưu tập. Tôi đã cập nhật câu trả lời với cấu trúc tài liệu dự kiến. – LoSciamano
Nó có thể là nó đếm "dấu thời gian" quá? Ngoài ra, bạn có thể thử tìm đối tượng nào được tính nhiều lần trong truy vấn "tồn tại" (theo http://stackoverflow.com/questions/4224773/fast-way-to-find-duplicates-on-indexed-column- in-mongodb). Có điều gì thú vị trong "giải thích()" đầu ra? Bạn đã đổi tên trường? – mikalai