-
Notifications
You must be signed in to change notification settings - Fork 8
MongoDB Statements
Marian Steinbach edited this page May 3, 2013
·
2 revisions
Hier werden einige nützliche MongoDB Statements für Abfragen und Aggregationen gesammelt.
db.queue.aggregate(
{
$group: {
_id: {
rs: "$rs",
status: "$status"
},
count: {$sum: 1}
}
},
{
$sort: { "_id.rs": 1}
}
);db.submissions.aggregate(
{
$group: {
_id: {
type: "$type"
},
count: {$sum: 1}
}
}
);db.submissions.aggregate(
{
$group: {
_id: {
rs: "$rs"
},
count: {$sum: 1}
}
}
);db.attachments.aggregate(
{
$group: {
_id: {
mimetype: "$mimetype"
},
count: {$sum: 1},
average_size: {$avg: "$size"},
size_sum: {$sum: "$size"}
}
}
);db.attachments.aggregate(
{
$group: {
_id: {
sha1: "$sha1",
size: "$size"
},
count: {$sum: 1}
}
},
{
$match: {
count: {$gte: 2}
}
},
{
$sort: {count: -1}
}
);db.attachments.aggregate(
{
$group: {
_id: {
sha1: "$sha1",
size: "$size"
},
count: {$sum: 1}
}
},
{
$match: {
count: {$gte: 2}
}
},
{
$group: {
_id: "size",
size: {
$sum: "$_id.size"
}
}
}
);// Mapper
var mapFunction = function() {
var re = new RegExp("[ \t\n\.;,!:\(\)\/]+");
var terms = this.fulltext.split(re);
for (var n in terms) {
var bigram = terms[n].toLowerCase();
if (terms[n+1]) {
bigram += " " + terms[n+1].toLowerCase();
emit(bigram, 1);
}
}
};
// Reducer
var reduceFunction = function(bigram, count) {
return Array.sum(count);
};
// Execution
db.attachments.mapReduce(
mapFunction,
reduceFunction,
{
out: "bigrams_mapreduce",
query: {
fulltext: {"$exists": true}
}
}
);