Điều này là do bạn sử dụng chỉ mục thưa thớt cho bcoded_metadata
. Nếu bạn có một chỉ mục thưa thớt trên bcoded_metadata, thì chỉ mục sẽ không chứa các tài liệu không có trường bcoded_metadata
. Các tài liệu không có bcoded_metadata
trường không phải là một phần của truy vấn ban đầu của bạn và do đó "count" sẽ trả về 0.
Nếu bạn chỉ chạy tìm kiếm:db.ts.find({"bcoded_metadata" : { "$exists" : false } })
thì bạn cũng sẽ không nhận được kết quả nào. Bạn có thể sử dụng chỉ mục không thưa thớt hoặc đếm đầy đủ với db.ts.count();
và trừ kết quả của db.ts.find({"bcoded_metadata" : { "$exists" : true } })
kết quả.
Có một thẻ JIRA giải thích thêm một chút và có thể được theo dõi trong trường hợp MongoDB nhận được thông báo lỗi / cảnh báo cho điều này: https://jira.mongodb.org/browse/SERVER-3918