1
分組我有收集數據是這樣的:MongoDB的數據與彙總
> db.LogBuff.find()
{ "_id" : ObjectId("578899d5d2b76f77d083f16c"), "SUBJECT" : "DD", "SYS" : "A" }
{ "_id" : ObjectId("578899d5d2b76f77d083f16d"), "SUBJECT" : "AA", "SYS" : "B" }
{ "_id" : ObjectId("578899d5d2b76f77d083f16e"), "SUBJECT" : "BB", "SYS" : "A" }
{ "_id" : ObjectId("578899d5d2b76f77d083f16f"), "SUBJECT" : "AA", "SYS" : "C" }
{ "_id" : ObjectId("578899d5d2b76f77d083f170"), "SUBJECT" : "BB", "SYS" : "A" }
{ "_id" : ObjectId("578899d5d2b76f77d083f171"), "SUBJECT" : "BB", "SYS" : "A" }
{ "_id" : ObjectId("578899d5d2b76f77d083f172"), "SUBJECT" : "CC", "SYS" : "B" }
而且我想,如下提取輸出(帶有明顯的「SYS」值)
{"SUBJECT" : "AA", "SYS" : ["A","B","C","D"]}
{"SUBJECT" : "BB", "SYS" : ["A","B","C","D"]}
{"SUBJECT" : "CC", "SYS" : ["A","B","C"]}
這裏是我的代碼和我被困在中間,請幫我在_id
這個
db.LogBuff.aggregate([{
"$unwind": "$SYS"
}, {
"$group": {
_id: {
"_id": "$SUBJECT"
},
SYST: {
$addToSet: "$SYS"
}
}
}, {
"$unwind": "$SYST"
}, {
"$group": {
_id: {
"SUBJECT": "$_id",
"SYST":"$SYST"
}
}
}])
是什麼在第一管道使用了'$ unwind'操作的時候'SYS'領域是不是一個數組?爲什麼不直接運行'db.LogBuff.aggregate([ {$ group「:{ 」_id「:」$ SUBJECT「, 」sys「:{」$ addToSet「:」$ SYS「}} } } ])? – chridam