से वापस आने के लिए चयनित फ़ील्ड प्राप्त करने का प्रयास कर रहा है मुझे अपने कुल कार्य में समस्या हो रही है। मैं डेटाबेस से उपयोगकर्ताओं को सबसे आम आदेश प्राप्त करने की कोशिश कर रहा हूं लेकिन मैं केवल नाम और गिनती वापस कर रहा हूं। मैंने $project
ऑपरेटर का उपयोग करने का प्रयास किया है, लेकिन मुझे $group
कथन में जो कुछ भी है, उसके अलावा मैं इसे कुछ भी वापस नहीं कर सकता।Mongodb कुल
यहाँ मेरे वर्तमान में समेकित फ़ंक्शन है:
OrderModel.aggregate(
{$unwind: "$products"},
{$match: { customerID: customerID }},
{$group: { _id: "$products.name", count: {$sum:1}}},
{$project: {name: "$_id", _id:0, count:1, active:1}},
{$sort: {"count" : -1}},
{$limit: 25 })
रूप {"count":10, "name": foo"}
इस प्रकार है, जबकि मैं पूरी वस्तु वापस जाने के लिए चाहते हैं तो यह सिर्फ एक उत्पादन पैदा करता है; एम्बेडेड दस्तावेज़ और सब कुछ। कोई विचार जहां मैं गलत जा रहा हूँ?
संपादित- जोड़ा उदाहरण दस्तावेज़ और उम्मीद उत्पादन
दस्तावेज़:
{
"charge": {},
"captured": true,
"refunds": [
],
"balance_transaction": "txn_104Ics4QFdqlbCVHAdV1G2Hb",
"failure_message": null,
"failure_code": null,
"amount_refunded": 0,
"customer": "cus_4IZMPAIkEdiiW0",
"invoice": null,
"dispute": null,
"statement_description": null,
"receipt_email": null
},
"total": 13.2,
"userToken": "cus_4IZMPAIkEdiiW0",
"customerID": "10152430176375255",
"_id": "53ad927ff0cb43215821c649",
"__v": 0,
"updated": 20140701082928810,
"created": 20140627154919216,
"messageReceived": false,
"ready": true,
"active": false,
"currency": "GBP",
"products": [
{
"name": "Foo",
"active": true,
"types": [
{
"variants": [
{
"name": "Bar",
"isDefault": false,
"price": 13.2
}
]
}
]
}
]
}
अपेक्षित परिणाम:
[
{
"name": "Foo",
"active": true,
"types": [
{
"variants": [
{
"name": "Bar",
"isDefault": false
}
]
},
{
"variants": [
{
"name": "Something else",
"isDefault": false
}
]
}
],
"quantity": 10
},
{
"name": "Another product",
"active": true,
"types": [
{
"variants": [
{
"name": "Bar",
"isDefault": false
}
]
}
],
"quantity": 7
}
]
धन्यवाद!
अपने संग्रह से नमूना दस्तावेज़ दिखाएं। लेकिन अगर "ग्राहक आईडी" वास्तव में दस्तावेजों में एक समूह है तो आप जो कर रहे हैं वह काम नहीं करेगा यदि आप मूल दस्तावेज़ वापस चाहते हैं। स्रोत दस्तावेज़ और आपके अपेक्षित परिणाम दिखाएं। –
@NeilLunn मैंने अभी पोस्ट अपडेट किया है। ग्राहक आईडी दस्तावेजों में समूह नहीं है, सिर्फ इस दस्तावेज़ में एक फ़ील्ड है। – donpisci