MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

phép trừ trong truy vấn mongo không hoạt động?

Bạn cần thực hiện một sửa đổi nhỏ đối với $project của mình sự vật. Bạn cần sử dụng Đối tượng lấy được khi trừ 1 từ count , thay vì sử dụng giá trị trước đó của count .

DBObject project = new BasicDBObject("_id", 0);
DBObject countAfterSubtraction = new BasicDBObject("$subtract", 
                                     new Object[] {"$count", 1});
DBObject value = new BasicDBObject("$divide", 
                            new Object[] {"$value",countAfterSubtraction});
project.put("value", value);
project.put("Date", "$_id");
stages.add(new BasicDBObject("$project", project));

Đoạn mã trên sẽ hoạt động cho các nhóm có records >= 2 . Nếu có một nhóm duy nhất chỉ có một bản ghi, số đếm sau phép trừ sẽ bằng 0, dẫn đến số chia cho số không lỗi.

Vì vậy, bạn có thể sửa đổi mã của mình, để bao gồm một $ cond , để kiểm tra xem số đếm sau phép trừ có phải là 0 không , nếu có, thì hãy mặc định nó thành 1 , nếu không, hãy giữ giá trị bị trừ của count .

DBObject project = new BasicDBObject("_id", 0);
DBObject countAfterSubtraction = new BasicDBObject("$subtract", 
                                       new Object[] {"$count", 1});
DBObject eq  = new BasicDBObject("$eq",
                        new Object[]{countAfterSubtraction,0});
DBObject cond = new BasicDBObject("$cond",
                         new Object[]{eq,1,countAfterSubtraction});
DBObject value = new BasicDBObject("$divide", 
                                new Object[] {"$value",cond});
project.put("value", value);
project.put("Date", "$_id");
stages.add(new BasicDBObject("$project", project));



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để chạy truy vấn giải thích với trình điều khiển 2.4 C # Mongo?

  2. Truy vấn tùy chỉnh mùa xuân có thể phân trang

  3. Làm cách nào để bạn chuyển đổi một chuỗi thập lục phân thành một số trong mongodb?

  4. Làm thế nào để tạo lược đồ Mongoose với Mảng ID đối tượng?

  5. cách xử lý lỗi ngắt kết nối cho MongoDB