Использование множительной агрегации с MongoDB
1 jhane [2013-04-25 21:23:00]
У меня есть несколько документов, которые выглядят так:
{
"hostname" : "server1.example.com",
"virtual" : true,
"processors" : {
"cores" : 1,
"sockets" : 4
}
}
{
"hostname" : "server2.example.com",
"virtual" : false,
"processors" : {
"cores" : 2,
"sockets" : 2
}
}
Я пытаюсь вывести имя хоста, виртуальное и общее количество ядер для каждого документа. Я продолжаю получать синтаксическую ошибку, которая сильно меня раздражает. Вот мой запрос и синтаксическая ошибка.
c.aggregate( {
$project: {
hostname: 1,
total-cores: {$multiply: ["$processors.sockets", "$processors.cores"]},
virtual: 1,
_id: 0
}
});
Thu Apr 25 14:12:18 SyntaxError: missing : after property id (shell):1
Судя по документации, это должно сработать. Что мне не хватает? Я запускаю MongoDB 2.2.2.
http://docs.mongodb.org/manual/reference/aggregation/project/
mongodb
1 ответ
2 Решение JohnnyHK [2013-04-25 21:33:00]
total-cores ключевое слово total-cores чтобы он корректно проанализировал встроенный дефис:
c.aggregate({
$project: {
hostname: 1,
"total-cores": {$multiply: ["$processors.sockets","$processors.cores"]},
virtual: 1,
_id: 0
}
});