Skip to content

Instantly share code, notes, and snippets.

@byplayer
Created November 7, 2014 05:33
Show Gist options
  • Save byplayer/458dfc02a481b521b474 to your computer and use it in GitHub Desktop.
Save byplayer/458dfc02a481b521b474 to your computer and use it in GitHub Desktop.
MongoDB study
$ mongo
use sample1
db.unicorns.insert({name: 'Aurora', gender: 'f', weight: 450})
db.unicorns.find()
db.system.indexes.find()
db.unicorns.insert({name: 'Leto', gender: 'm', home: 'Arrakeen', worm: false})
db.unicorns.insert({name: 'Horny', dob: new Date(1992,2,13,7,47),
loves: ['carrot','papaya'], weight: 600,
gender: 'm', vampires: 63});
db.unicorns.insert({name: 'Aurora', dob: new Date(1991, 0, 24, 13, 0),
loves: ['carrot', 'grape'], weight: 450,
gender: 'f', vampires: 43});
db.unicorns.insert({name: 'Unicrom', dob: new Date(1973, 1, 9, 22, 10),
loves: ['energon', 'redbull'], weight: 984,
gender: 'm', vampires: 182});
db.unicorns.insert({name: 'Roooooodles', dob: new Date(1979, 7, 18, 18, 44),
loves: ['apple'], weight: 575,
gender: 'm', vampires: 99});
db.unicorns.insert({name: 'Solnara', dob: new Date(1985, 6, 4, 2, 1),
loves:['apple', 'carrot', 'chocolate'], weight:550,
gender:'f', vampires:80});
db.unicorns.insert({name:'Ayna', dob: new Date(1998, 2, 7, 8, 30),
loves: ['strawberry', 'lemon'], weight: 733,
gender: 'f', vampires: 40});
db.unicorns.insert({name:'Kenny', dob: new Date(1997, 6, 1, 10, 42),
loves: ['grape', 'lemon'], weight: 690,
gender: 'm', vampires: 39});
db.unicorns.insert({name: 'Raleigh', dob: new Date(2005, 4, 3, 0, 57),
loves: ['apple', 'sugar'], weight: 421,
gender: 'm', vampires: 2});
db.unicorns.insert({name: 'Leia', dob: new Date(2001, 9, 8, 14, 53),
loves: ['apple', 'watermelon'], weight: 601,
gender: 'f', vampires: 33});
db.unicorns.insert({name: 'Pilot', dob: new Date(1997, 2, 1, 5, 3),
loves: ['apple', 'watermelon'], weight: 650,
gender: 'm', vampires: 54});
db.unicorns.insert({name: 'Nimue', dob: new Date(1999, 11, 20, 16, 15),
loves: ['grape', 'carrot'], weight: 540,
gender: 'f'});
db.unicorns.insert({name: 'Dunx', dob: new Date(1976, 6, 18, 18, 18),
loves: ['grape', 'watermelon'], weight: 704,
gender: 'm', vampires: 165});
db.unicorns.find({gender: 'm', weight: {$gt: 700}})
db.unicorns.find({vampires: {$exists: false}})
db.unicorns.find({gender: 'f', $or: [{loves: 'apple'},
{loves: 'orange'},
{weight: {$lt: 500}}]})
db.unicorns.update({name: 'Roooooodles'}, {weight: 590})
db.unicorns.update({weight: 590}, {$set: {name: 'Roooooodles',
dob: new Date(1979, 7, 18, 18, 44),
loves: ['apple'],
gender: 'm',
vampires: 99}})
db.unicorns.update({name: 'Roooooodles'}, {$set: {weight: 600}})
db.unicorns.update({name: 'Pilot'}, {$inc: {vampires: -2}})
// ---
db.hits.update({page: 'unicorns'}, {$inc: {hits: 1}});
db.hits.find();
db.hits.update({page: 'unicorns'}, {$inc: {hits: 1}}, true);
db.hits.find();
// ---
db.unicorns.find(null, {name: 1});
db.unicorns.find(null, {name: 1, _id: 0});
db.unicorns.find().sort({weight: -1})
db.unicorns.find().sort({weight: -1}).limit(2).skip(1)
db.unicorns.count({vampires: {$gt: 50}})
db.unicorns.find({vampires: {$gt: 50}}).count()
// ---
db.employees.insert({_id: ObjectId("4d85c7039ab0fd70a117d730"), name: 'Leto'})
db.employees.insert({_id: ObjectId("4d85c7039ab0fd70a117d731"), name: 'Duncan',
manager: ObjectId("4d85c7039ab0fd70a117d730")});
db.employees.insert({_id: ObjectId("4d85c7039ab0fd70a117d732"), name: 'Moneo',
manager: ObjectId("4d85c7039ab0fd70a117d730")});
db.employees.find({manager: ObjectId("4d85c7039ab0fd70a117d730")})
db.employees.insert({_id: ObjectId("4d85c7039ab0fd70a117d734"), name: 'Ghanima',
family: {mother: 'Chani',
father: 'Paul',
brother: ObjectId("4d85c7039ab0fd70a117d730")}})
db.employees.find({'family.mother': 'Chani'})
// --- map/reduce
db.hits.insert({resource: 'index', date: new Date(2010, 0, 20, 4, 30)});
db.hits.insert({resource: 'index', date: new Date(2010, 0, 20, 5, 30)});
db.hits.insert({resource: 'about', date: new Date(2010, 0, 20, 6, 0)});
db.hits.insert({resource: 'index', date: new Date(2010, 0, 20, 7, 0)});
db.hits.insert({resource: 'about', date: new Date(2010, 0, 21, 8, 0)});
db.hits.insert({resource: 'about', date: new Date(2010, 0, 21, 8, 30)});
db.hits.insert({resource: 'index', date: new Date(2010, 0, 21, 8, 30)});
db.hits.insert({resource: 'about', date: new Date(2010, 0, 21, 9, 0)});
db.hits.insert({resource: 'index', date: new Date(2010, 0, 21, 9, 30)});
db.hits.insert({resource: 'index', date: new Date(2010, 0, 22, 5, 0)});
var map = function() {
var key = {resource: this.resource,
year: this.date.getFullYear(),
month: this.date.getMonth(),
day: this.date.getDate()
};
emit(key, {count: 1});
};
var reduce = function(key, values) {
var sum = 0;
values.forEach(function(value) {
sum += value['count'];
});
return {count: sum};
};
db.hits.mapReduce(map, reduce, {out: {inline:1}});
db.hits.mapReduce(map, reduce, {out: 'hit_stats'});
db.hit_stats.find();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment