Skip to content

Instantly share code, notes, and snippets.

@goedecke
Last active August 29, 2015 14:20
Show Gist options
  • Save goedecke/a75ad93dc3f8f5be8cc6 to your computer and use it in GitHub Desktop.
Save goedecke/a75ad93dc3f8f5be8cc6 to your computer and use it in GitHub Desktop.
Tutorial de Mongo
Estos son un conjunto de pequeños scripts para ayudar a entender cosas de programación
mongod --port 27666 --dbpath data --replSet rep1
{
"_id" : "rep1",
"version" : 1,
"members" :
[
{
"_id" : 0,
"host" : "CYLON-MACHINE:27666"
}
]
}
{
"set" : "rep1",
"date" : ISODate("2013-12-10T10:42:29Z"),
"myState" : 1,
"members" :
[
{
"_id" : 0,
"name" : "CYLON-MACHINE:27666",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 840,
"optime" :
{
"t" : 1386671943,
"i" : 1
},
"optimeDate" : ISODate("2013-12-10T10:39:03Z"),
"self" : true
}
],
"ok" : 1
}
{
"_id" : "rep1",
"version" : 3,
"members" :
[
{
"_id" : 0,
"host" : "CYLON-MACHINE:27666"
},
{
"_id" : 1,
"host" : "CYLON-MACHINE:27667"
},
{
"_id" : 2,
"host" : "CYLON-MACHINE:27668"
}
]
}
{
"set" : "rep1",
"date" : ISODate("2013-12-11T21:33:19Z"),
"myState" : 1,
"members" :
[
{
"_id" : 0,
"name" : "CYLON-MACHINE:27666",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 358,
"optime" : Timestamp(1386797270, 1),
"optimeDate" : ISODate("2013-12-11T21:27:50Z"),
"self" : true
},
{
"_id" : 1,
"name" : "CYLON-MACHINE:27667",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 338,
"optime" : Timestamp(1386797270, 1),
"optimeDate" : ISODate("2013-12-11T21:27:50Z"),
"lastHeartbeat" : ISODate("2013-12-11T21:33:19Z"),
"lastHeartbeatRecv" : ISODate("2013-12-11T21:33:19Z"),
"pingMs" : 1,
"syncingTo" : "CYLON-MACHINE:27666"
},
{
"_id" : 2,
"name" : "CYLON-MACHINE:27668",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 329,
"optime" : Timestamp(1386797270, 1),
"optimeDate" : ISODate("2013-12-11T21:27:50Z"),
"lastHeartbeat" : ISODate("2013-12-11T21:33:18Z"),
"lastHeartbeatRecv" : ISODate("2013-12-11T21:33:18Z"),
"pingMs" : 0,
"syncingTo" : "CYLON-MACHINE:27666"
}
],
"ok" : 1
}
db.sequences.insert(
{
_id: "posts",
seq: 0
}
);
function nextVal(name) {
var ret = db.sequences.findAndModify(
{
query: { _id: name },
update: { $inc: { seq: 1 } },
new: true
}
);
return ret.seq;
}
db.posts.insert(
{
_id: nextVal("posts"),
title: "Tutorial de MongoDB. Operaciones de consulta" ,
content: " En nuestra anterior entrada del tutorial de MongoDB ...",
status: "published"
}
);
db.posts.insert(
{
_id: nextVal("posts"),
name: "Tutorial de MongoDB y C#. Conexión a la base de datos",
content: "Cuando queremos usar MongoDB desde C#, tenemos que crear una conexión ...",
status: "draft"
}
);
db.people.find(
{
age:{$gt:30}
},
{
name:1,
age:1
}
);
db.people.find(
{
age:{$gte:30}
},
{
name:1,
age:1
}
);
db.people.find(
{
age:{$lt:30}
},
{
name:1,
age:1
}
);
db.people.find(
{
age:{$ne:30}
},
{
name:1,
age:1
}
);
db.people.find(
{
age:{$in:[25,30,35]}
},
{
name:1,
age:1
}
);
db.people.find(
{
company:{$exists:true}
},
{
name:1,
age:1,
company:1
}
);
db.people.find(
{
company:{$type:2}
},
{
name:1,
age:1,
company:1
}
);
db.people.find(
{ $or:
[
{gender:"female"},
{age:{$gt:20}}
]
},
{
name:1,
gender:1,
age:1
}
);
db.people.find(
{
gender:"female",
age:{$gt:20}
},
{name:1,gender:1,age:1}
);
db.people.find(
{
$and:
[
{gender:"female"},
{age:{$gt:20}}
]
},
{name:1,gender:1,age:1} )
db.people.find(
{
age:{$gt:30},
age:{$lt:40}
},
{name:1,gender:1,age:1}
);
db.people.find(
{
age:{$lt:40},
age:{$gt:30}
},
{name:1,gender:1,age:1}
);
db.people.find(
{
$and:
[
{age:{$gt:30}},
{age:{$lt:40}}
]
},
{name:1,gender:1,age:1});
db.people.find(
{
$or:
[
{age:{$gt:30}},
{
$and:[
{age:{$gt:50}},
{gender:"female"}
]
}
]
}
);
db.people.find(
{
age:{$not:{$gt:30}}
}
);
db.people.find(
{
$nor:
[
{age:{$gt:30}},
{isActive:true}
]
},
{age:1,isActive:1}
);
db.people.find(
{
$nor:
[
{age:{$gt:30}},
{age:{$exists:false}},
{isActive:true},
{isActive:{$exists:false}}
]
}
);
{
_id:1,
name:"Pedro",
age:23,
savedPoints:[200,10,30]
},
{
_id:2,
name:"Mariano",
age:48,
savedPoints:[50,85]
}
{_id:1,savedPoints:[200,10,30] },
{_id:2,savedPoints:[50,85] }
{_id:1,totalPoints:240},
{_id:2,totalPoints:135 }
db.people.aggregate(
{
$group:
{
_id:"$gender",
totalAge:{$sum:"$age"},
totalPeople:{$sum:1}
}
});
var map = function()
{
var key=this.gender;
var value = { "totalPeople":1, "totalAge":this.age};
emit(key,value);
};
var reduce = function(keys,values)
{
var reduced =
{
totalPeople:0,
totalAge:0
};
for (var i=0; i < values.length;i++)
{
reduced.totalPeople+=values[i].totalPeople;
reduced.totalAge+=values[i].totalAge;
}
return reduced;
};
db.map_reduce_result.find();
/* 0 */
{
"_id" : "female",
"value" : {
"totalPeople" : 288,
"totalAge" : 8545
}
}
/* 1 */
{
"_id" : "male",
"value" : {
"totalPeople" : 271,
"totalAge" : 8241
}
}
db.people.aggregate(
{
$match:{
$and:[
{isActive:true},
{age:{$gte:25}}
]
}
});
db.people.aggregate(
{
$match: {
isActive:true,
age:{$gte:25}
}
});
db.people.aggregate(
{
$match:{
$and:
[
{
$or:[
{age:{$gte:40}},
{age:{$lte:30}}
]
},
{isActive:true}
]
}
});
db.people.aggregate(
{
$match:{
$or:
[
{age:{$gte:40}},
{age:{$lte:30}},
{isActive:true}
]
}
});
db.people.aggregate(
{
$match:{
age:{$not:{$gte:40}}
}
});
db.people.aggregate(
{
$project:
{
_id:-1,
name:1,
tipo:{
$cond:[{$gte:["$age",65]},"Pensionista","Normal"]
}
}
});
db.people.aggregate(
{
$project:
{
_id:-1,
name:1,
location:{
$ifNull:["$latitude","Sin datos"]
}
}
});
db.people.find({tags:"laborum"},{name:1,tags:1});
db.people.find(
{
tags:
{
$all:["laborum","sunt"]
}
},
{name:1,tags:1});
db.people.find(
{
tags:
{
$in:["laborum","sunt","nisi"]
}
},
{name:1,tags:1});
db.people.find(
{
tags:
{
$nin:["laborum","sunt","nisi"]
}
},
{name:1,tags:1});
db.people.find({tags:{$size:3}})
db.people.find(
{
tags:
{
$in:["laborum","sunt","nisi"]
}
},
{"tags.$":1,name:1});
db.people.find(
{
tags:
{
$in:["laborum","sunt","nisi"]
}
},
{tags:{$slice:3},name:1});
db.people.find(
{
tags:
{
$in:["laborum","sunt","nisi"]
}
},
{tags:{$slice:-3},name:1});
db.people.find(
{
tags:
{
$in:["laborum","sunt","nisi"]
}
},
{tags:{$slice:[2,3]},name:1});
db.people.find(
{
tags:
{
$in:["laborum","sunt","nisi"]
}
},
{tags:{$slice:[-2,3]},name:1});
db.people.find({"tags.1":"enim"});
db.people.find(
{
friends:
{
id:1,
name:"Trinity Ford"
}
});
db.people.find({"friends.name":"Trinity Ford"});
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{friends:{$slice:-1},name:1});
db.people.find(
{
"name": {$regex:".*r$"}
},
{name:1});
db.people.find(
{
"name": {$regex:".*fis"}
},
{name:1});
db.people.find(
{
"name": {$regex:".*Fis"}
},
{name:1});
db.people.find(
{
"name": {$regex:".*fis", $options:"i"}
},
{name:1});
db.people.find(
{"friends.2.name":{$gte:"T"}
}).count();
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{_id:0,name:1}).sort({name:1});
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{_id:0,name:1}).sort({name: -1})
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{_id:0,name:1,email:1}).sort({name:1,email:1})
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{name:1}).limit(5)
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{name:1}).skip(5)
var myArray =
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{name:1}).toArray()
db.people.find(
{
"friends.2.name":{$gte:"T"}
},
{name:1}).skip(10).limit(5)
db.people.find(
{
"friends.2.name":{$gte:"T"}},
{name:1}).sort({name:1}).limit(1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment