Skip to main content

[mongo] sample queries

-- dump

mongodump --db test
mongorestore --db test Answer.bson


-- export

mongoexport --host localhost --db test --collection Answer --csv --out mongo-dump.csv --fields presence,understanding,alternatives,need,value,satisfaction,future,recommend,feeling,organisationId,entityId,industryCode,createdAt

tail mongo-dump.csv



-- count

db.Answer.count({createdAt: {$gte: ISODate("2014-09-29T00:00:00Z"), $lte: ISODate("2014-10-01T23:59:59Z")}});
1110

db.Answer.count({createdAt: {$gte: ISODate("2014-09-29T00:00:00Z"), $lte: ISODate("2014-09-29T23:59:59Z")}});
358

db.Answer.count({createdAt: {$gte: ISODate("2014-09-30T00:00:00Z"), $lte: ISODate("2014-09-30T23:59:59Z")}});
300

db.Answer.count({createdAt: {$gte: ISODate("2014-10-01T00:00:00Z"), $lte: ISODate("2014-10-01T23:59:59Z")}});
413

// 

db.Answer.find({createdAt: {$gte: ISODate("2014-10-01T00:00:00Z")}});
db.Answer.count({createdAt: {$gte: ISODate("2014-10-01T00:00:00Z")}});
1118



-- update

db.Answer.find({createdAt: {$gte: ISODate("2014-09-30T00:00:00Z"), $lte: ISODate("2014-09-30T23:59:59Z")}}).forEach(function(a){
  db.Answer.update(a, {$set:{"createdAt" : ISODate("2014-10-01T00:00:00Z")}});
});



-- aggregate


db.Answer.aggregate(
   [
     {
       $group:
         {
           _id: "$need",
           avgQuantity: { $avg: "$quantity" }
         }
     }
   ]
)

db.Answer.aggregate(
   [
     {
       $group:
         {
            _id: "1470",
            presence : {'$avg':'$presence'},
            presence_sum : {'$sum':'$presence'},
            understanding : {'$avg' : '$understanding'},
            understanding_sum : {'$sum' : '$understanding'},
            alternatives : {'$avg' : '$alternatives'},
            alternatives_sum : {'$sum' : '$alternatives'},
            need : {'$avg' : '$need'},
            need_sum : {'$sum' : '$need'},
            value : {'$avg' : '$value'},
            value_sum : {'$sum' : '$value'},
            satisfaction : {'$avg' : '$satisfaction'},
            satisfaction_sum : {'$sum' : '$satisfaction'},
            future : {'$avg' : '$future'},
            future_sum : {'$sum' : '$future'},
            recommend : {'$avg' : '$recommend'},
            recommend : {'$sum' : '$recommend'},
            count : {'$sum' : 1},     
         },
     }
   ]
);


db.Answer.aggregate(
   [
     {$match: {createdAt: {$gte: ISODate("2014-10-01T00:00:00Z")}}},
     {
       $group:
         {
            _id: "$organisationId",
            presence : {'$avg':'$presence'},
            presence_sum : {'$sum':'$presence'},
            understanding : {'$avg' : '$understanding'},
            understanding_sum : {'$sum' : '$understanding'},
            alternatives : {'$avg' : '$alternatives'},
            alternatives_sum : {'$sum' : '$alternatives'},
            need : {'$avg' : '$need'},
            need_sum : {'$sum' : '$need'},
            value : {'$avg' : '$value'},
            value_sum : {'$sum' : '$value'},
            satisfaction : {'$avg' : '$satisfaction'},
            satisfaction_sum : {'$sum' : '$satisfaction'},
            future : {'$avg' : '$future'},
            future_sum : {'$sum' : '$future'},
            recommend : {'$avg' : '$recommend'},
            recommend : {'$sum' : '$recommend'},
            count : {'$sum' : 1},     
         },
     }
   ]
);




db.Answer.aggregate([
{$match: {"createdAt": {$gte: ISODate("2014-10-01T00:00:00Z")}}},
{$group: {_id: {"feeling": "$feeling"}, "count": {'$sum': 1}}},
{$sort: {count: -1}}
]);

Comments

Popular posts from this blog

Browser User Agent List

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/601.4.4 (KHTML, like Gecko) Version/9.0.3 Safari/601.4.4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/601.5.17 (KHTML, like Gecko) Version/9.1 Safari/601.5.17 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36 Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0 Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0;...

[linux] Adjusting child processes for PHP-FPM (Nginx)

Adjusting child processes for PHP-FPM (Nginx) Problem: The following warning message appears in the logs: [26-Jul-2012 09:49:59] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 32 children, there are 8 idle, and 58 total children [26-Jul-2012 09:50:00] WARNING: [pool www] server reached pm.max_children setting (50), consider raising it It means that there are not enough PHP-FPM processes. Solution: We need to calculate and change these values based on the amount of memory on the system: /etc/php-fpm.d/www.conf pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 5 pm.max_spare_servers = 35 - the following command will help us to determine the memory used by each (PHP-FPM) child process: ps -ylC php-fpm --sort:rss The RSS column shows non-swapped physical memory usage by PHP-FPM processes in kilo Bytes. On an average each PHP-FPM process took ~75MB of RAM on my machine. Appropriate valu...

[symfony] Assert in Entity

* @Assert\NotBlank() * @Assert\Blank() * @Assert\NotNull() * @Assert\Null() * @Assert\True(message = "The token is invalid") * @Assert\False( *     message = "You've entered an invalid state." * ) * @Assert\Type(type="integer", message="The value {{ value }} is not a valid {{ type }}.") is_ array bool callable float double int integer long null numeric object real resource scalar string ctype_ alnum alpha cntrl digit graph lower print punct space upper xdigit * @Assert\Email( *     message = "The email '{{ value }}' is not a valid email.", *     checkMX = true * ) * @Assert\Length( *      min = 2, *      max = 50, *      minMessage = "Your first name must be at least {{ limit }} characters long", *      maxMessage = "Your first name cannot be longer than {{ limit }} characters long" * ...