MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

изваждането в mongo заявката не работи?

Трябва да направите лека модификация на вашия $project обект. Трябва да използвате обекта, получен при изваждане на 1 от count , вместо да използва предишната стойност на 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));

Горният код ще работи за групи, които имат records >= 2 . Ако има една група само с един запис, броят след изваждане ще бъде нула, което ще доведе до деление на нула грешка.

Така че можете да промените кода си, за да включите $cond , за да проверите дали броячът след изваждане е 0 , ако е, тогава по подразбиране е 1 , в противен случай запазете извадената стойност на 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. Мигриране на MongoDB към DynamoDB, част 2

  2. MongoDB заявка за всички шардирани колекции без shardkey

  3. Препоръки относно структурата на Mongoid/MongoDB Tree of Tags

  4. Mongodb find() заявка:връща само уникални стойности (без дубликати)

  5. извършва математика в заявки за търсене mongodb