Перетворення MySQL-запиту в Mongo - ruby-on-rail, mongodb, mongodb-query

У мене нижче запит, який я хочу перетворити на Mongo, то як я можу

SELECT COUNT (*) AS count_all, DATE (created_at) AS date_created_at FROM ГРУПА "СТОЛ" за датою (created_at)

а також будь ласка, поясніть, щоб я міг зробити наступного разу.

Відповіді:

1 для відповіді № 1

Ви можете спробувати наступне. Я сподіваюсь, це допоможе вам.

db."TABLE".group({
"key": {
"created_at": true
},
"initial": {
"count_all": 0
},
"reduce": function(obj, prev) {
if (true != null) if (true instanceof Array) prev.count_all += true.length;
else prev.count_all++;
}
});

1 для відповіді № 2

У mongodb ви можете використовувати наступний конвеєр агрегації:

db.collection.aggregate( [
{
$group: {
_id: "$created_at",
count_all: { $sum: 1 }
}
},
{
$project: {
_id: 0, date_created_at: "$_id", count_all: 1
}
}
])

які потім можуть бути перетворені в синтаксис ruby ​​як:

project = {"$project" =>
{
"_id" => 0,
"date_created_at" => "$_id",
"count_all" => 1
}
}
group =  { "$group" =>
{ "_id" => "$created_at", "count_all" => { "$sum" => 1 } }
}
Table.collection.aggregate([group,project])

Для отримання додаткових прикладів зверніться до документи


Схожі запитання
Найбільш популярний