User:Lindenb/Notebook/UMR915/20100914
From OpenWetWare
Mongodb
Downloaded http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.2.tgz and the java driver http://cloud.github.com/downloads/mongodb/mongo-java-driver/mongo-2.1.jar on server2
user & group
create a user and group for mongodb
sudo /usr/sbin/groupadd mongodb sudo /usr/sbin/useradd -c "MongoDabatabase User" -M -r -g mongodb mongodb
start
create data dir
mkdir /GENOTYPAGE/data/mongodb/umr915
start mongo
sudo -u mongodb /usr/local/package/mongodb-linux-x86_64-1.6.2/bin/mongod --dbpath /GENOTYPAGE/data/mongodb/umr915
insert
insert a project
> p={_id:"Bru",label:"XXXX",description:"XXXX",creation:"2010-09-14"}; {
"_id" : "Bru", "label" : "XXXX", "description" : "XXXX", "creation" : "2010-09-14"
} > use umr915; switched to db umr915 > db.projects.save(p);
find project by id:
> db.projects.find(); { "_id" : "Bru", "label" : "XXXX", "description" : "XXXX", "creation" : "2010-09-14" } > db.projects.find({_id:"doesnotexist"}); > db.projects.find({_id:"Bru"}); { "_id" : "Bru", "label" : "XXXX", "description" : "XXXX", "creation" : "2010-09-14" }
insert 10 families:
for(var i=1;i<= 10;++i) db.families.save({_id:"Br"+i,label:"Br"+i,description:"XXXX Family ID."+i,creation:"2010-09-14",project:"Bru"}); > db.families.find() { "_id" : "Br1", "label" : "Br1", "description" : "XXXX Family ID.1", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br2", "label" : "Br2", "description" : "XXXX Family ID.2", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br3", "label" : "Br3", "description" : "XXXX Family ID.3", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br4", "label" : "Br4", "description" : "XXXX Family ID.4", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br5", "label" : "Br5", "description" : "XXXX Family ID.5", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br6", "label" : "Br6", "description" : "XXXX Family ID.6", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br7", "label" : "Br7", "description" : "XXXX Family ID.7", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br8", "label" : "Br8", "description" : "XXXX Family ID.8", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br9", "label" : "Br9", "description" : "XXXX Family ID.9", "creation" : "2010-09-14", "project" : "Bru" } { "_id" : "Br10", "label" : "Br10", "description" : "XXXX Family ID.10", "creation" : "2010-09-14", "project" : "Bru" }
create index on families@project:
db.families.ensureIndex({project:1});
search/explain find
> db.families.find().explain() { "cursor" : "BasicCursor", "nscanned" : 10, "nscannedObjects" : 10, "n" : 10, "millis" : 0, "indexBounds" : { } } > db.families.find({project:"Bru"}).explain() { "cursor" : "BtreeCursor project_1", "nscanned" : 10, "nscannedObjects" : 10, "n" : 10, "millis" : 0, "indexBounds" : { "project" : [ [ "Bru","Bru"] ] } }
search with function:
> db.families.find({$where: function() { return this.label=="Br5";}}) { "_id" : "Br5", "label" : "Br5", "description" : "XXXX Family ID.5", "creation" : "2010-09-14", "project" : "Bru" }
difference between count & size
> db.families.find().limit(1).count() 10 > db.families.find().limit(1).size() 1