我有MongoDB的內容如下:組嵌套內陣列中貓鼬
[{
"_id": {
"$oid": "57c6699711bd6a0976cabe8a"
},
"ID": "1111",
"FullName": "AAA",
"Category": [
{
"CategoryId": {
"$oid": "57c66ebedcba0f63c1ceea51"
},
"_id": {
"$oid": "57e38a8ad190ea1100649798"
},
"Value": [
{
"Name": ""
}
]
},
{
"CategoryId": {
"$oid": "57c3df061eb1e59d3959cc40"
},
"_id": {
"$oid": "57e38a8ad190ea1100649797"
},
"Value": [
[
"111",
"XXXX",
"2005"
],
[
"1212",
"YYYY",
"2000"
],
[
"232323",
"ZZZZZ",
"1999"
]
]
}
]
},{
"_id": {
"$oid": "57c6699711bd6a0976cabe8a"
},
"ID": "1111",
"FullName": "BBB",
"Category": [
{
"CategoryId": {
"$oid": "57c66ebedcba0f63c1ceea51"
},
"_id": {
"$oid": "57e38a8ad190ea1100649798"
},
"Value": [
{
"Name": ""
}
]
},
{
"CategoryId": {
"$oid": "57c3df061eb1e59d3959cc40"
},
"_id": {
"$oid": "57e38a8ad190ea1100649797"
},
"Value": [
[
"4444",
"XXXX",
"2005"
],
[
"7777",
"GGGG",
"2000"
],
[
"8888",
"ZZZZZ",
"1999"
]
]
}
]
}]
在這裏,我有一個名爲「ResumeCategory」,其中它包含具有不同類別ID的對象的陣列。
我需要 1.選擇類別,其ID是「57c3df061eb1e59d3959cc40」 2.上述所選類別包含的值作爲陣列 3.從值陣列,我要組元件根據第二值和需要得到用戶名稱表
例如,輸出:
resume.aggregate([
{$match: {'Category.CategoryId': new ObjectId('57c3df191eb1e59d3959cc43')}},
{$unwind: '$Category'},
{$unwind: '$Category.Value'},
{$match: {'Category.CategoryId': new ObjectId('57c3df191eb1e59d3959cc43')}},
{$group: { _id: '$Category.Value', count: {$sum: 1}}},
{$project: {'_id':0, TagValue: '$_id',count: '$count'}}
],function(err, resData){
res.send(resData);
});
:
[{
'CategoryName': 'XXXX',
'Users': ['AAA', 'BBB']
},
{
'CategoryName': 'YYYY',
'Users': ['AAA']
},
{
'CategoryName': 'ZZZZZ',
'Users': ['AAA', 'BBB']
},
{
'CategoryName': 'GGGG',
'Users': ['BBB']
}]
我已使用如下聚合函數試圖組
從上面的查詢中,它根據Value數組分組。它需要具有三個元素的數組進行分組。任何人都可以幫助根據內部數組值(單個元素即值[1])對值進行分組,並獲得所需的結果。
在此先感謝。
嗨..我收到錯誤爲「無效運算符$ arrayElemAt'。我的MongoDb版本 - 3.0.12 ...這是一個版本問題..如果是這樣的話,版本3.2中引入了3.0.12版本 – user3211705
Operator $ arrayElemAt中'$ arrayElemAt'的等價物。所以,它不適用於3.0版本。 – 4J41
3.0.12 mongodb版本中是否有'$ arrayElemAt'的等價物? – user3211705