MongoDB возможно ли выполнить команду distinct с substr для ключа

#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} }}
  ]);