상당한 memory 가 필요하기 때문에 이런 방식으로 word count를 하는 것은 추천하진 않는다.

아무튼 aggregate 로 word count 하는 코드는 아래와 같다.

db.mytable.aggregate([
{
    $project: {
       "words": {$split: ["$wordstring", " "]}
    }
},
{
    $unwind: "$words"
},
{
    $group: {
      _id: null,
      allwords: {$push: "$words"}
    }
},
{
    $project: {
        wordCount: {$size: "$allwords"}
    }
}
],
{
    allowDiskUse:true
})

위에서 wordstring 은 개수를 세고싶은 word 가 있는 string.

사용할 땐 아래처럼 사용하면 된다.

 

 

출처

https://stackoverflow.com/questions/45266892/mongodb-aggregation-to-count-words-of-strings-matcheshttps://stackoverflow.com/a/45267849/5868252

+ Recent posts