2016-02-15 1 views
0

Возможно ли создать частичный индекс в коллекции с использованием оператора массива $ size? Например, если у меня была схема blogPost с полем массива comments:[type:String], могу ли я индексировать коллекцию на основе количества комментариев на blogPost

ответ

0

Я не верю, что вы можете индексировать по длине массива. Однако вы можете изменить свою схему, чтобы иметь счетчик комментариев. Вы можете добавить индекс на этом поле и использовать атомарные операции обновления, чтобы добавлять комментарии, а увеличивающийся комментарий граф:

BlogPost.update(
    { 
     _id: "123" 
    }, 
    { 
     $push: { 
      comments: "new comment" 
     }, 
     $inc: { 
      commentCount: 1 
     } 
    }, callback); 

Просто добавьте индекс на commentCount и он должен решить вашу проблему.