【发布时间】:2014-09-05 14:37:19
【问题描述】:
我对 MongoDB 中的聚合框架相当陌生,但据我了解,$addToSet 功能仅向数组添加唯一值并忽略现有值。所以由于某种原因,下面的聚合仍然会产生重复
db.tweets.aggregate([
{
$group: {
_id: "$_id",
hashtags: {
$addToSet : "$tweet.entities.hashtags.text"
}
}
},
{ $unwind : "$hashtags" }
]);
原始标签数组:
"hashtags" : [
{
"indices" : [
64,
73
],
"text" : "TONYTour"
},
{
"indices" : [
97,
101
],
"text" : "NIU"
},
{
"indices" : [
102,
106
],
"text" : "NIU"
},
{
"indices" : [
107,
111
],
"text" : "NIU"
}
]
},
结果:
{
"_id" : ObjectId("53f4aad7485aee023d000115"),
"hashtags" : [
"TONYTour",
"NIU",
"NIU",
"NIU"
]
}
我尝试在放松后做第二组,但没有成功。那么,为了实现我正在寻找的结果,我究竟没有从聚合框架中掌握什么:
{
"_id" : ObjectId("53f4aad7485aee023d000115"),
"hashtags" : [
"TONYTour",
"NIU"
]
}
【问题讨论】:
标签: mongodb aggregation-framework