2011-11-09 45 views
6

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" 
} 
+0

thats hoàn toàn lạ, bạn có thể cập nhật cấu trúc tài liệu .... – RameshVel

+0

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

+0

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

Trả lời

0

Có lẽ time giá trị mà là kiểu mảng.

Bạn có thể làm db.droppay.find({time: {$type : 4}}) để tìm các tài liệu như vậy.

+1

Đề xuất hay! Nhưng tiếc là đây không phải là vấn đề. Tôi đã thử truy vấn này và nó trả về cho tôi một kết quả trống ... – LoSciamano

+0

@LoSciamano cảm ơn đã cho tôi biết. – lig

1

Tôi đoán đó là vấn đề với chỉ mục. Tôi đặt cược rằng droppay có một chỉ số về: thời gian, và một số hoạt động không an toàn cập nhật bộ sưu tập cơ bản mà không cần cập nhật chỉ mục.

Bạn có thể thử repairing the db và xem điều đó có tốt hơn không.

Chúc may mắn.

Các vấn đề liên quan