#mongodb #substring #distinct #substr #runcommand
#mongodb #substring #distinct #substr #runcommand
Вопрос:
Возможно ли выполнить команду distinct с substr для ключа, на который я нацеливаюсь? Я продолжаю получать missing : after property id :
db.runCommand(
{
distinct: "mycollection",
key: {"myfield" : { $substr: { "$myfield", 0, 10 } }},
}
)
Комментарии:
1. Ясность: вы хотите получить различные значения для
myfield
, а затем выполнить подстроку или сначала выполнить подстроку, а затем получить из нее различные значения?2. @BuzzMoschetti Я хочу, чтобы она отличалась от подстроки
Ответ №1:
Не могу этого сделать с runCommand
distinct
помощью . Вам нужно использовать agg framework для обработки поля, а затем получить различные значения, используя $group
, таким образом:
db.foo.aggregate([
{$group: {_id: {$substr: [ "$myfield",0,10]} }}
]);
Очень часто бывает полезно получить количество этих различных значений:
db.foo.aggregate([
{$group: {_id: {$substr: ["$myfield",0,10]}, count: {$sum:1} }}
]);