我一直在嘗試在SO上找到的每一個方法,但都沒有成功。試圖 完成一個看似簡單的任務(很容易使用JSON /例如lodash)MongoDB中..MongoDB>從嵌套數組提取集合
我有一個集合: db.users>
[
{
_id: 'userid',
profile: {
username: 'abc',
tests: [
{
_id: 'testid',
meta: {
category: 'math',
date: '9/2/2017',
...
}
questions: [
{
type: 'add',
correct: true,
},
{
type: 'subtract',
correct: true,
},
{
type: 'add',
correct: false,
},
{
type: 'multiply',
correct: false,
},
]
},
...
]
}
},
...
]
我想用落得陣列由問題類型分組:
[
{
type: 'add',
correct: 5,
wrong: 3,
},
{
type: 'subtract',
correct: 4,
wrong: 9
}
...
]
我試圖骨料的不同變型中,最後一個是:
db.users.aggregate([
{ $match: { 'profile.tests.meta.category': 'math' }},
{
$project: {
tests: {
$filter: {
input: "$profile.tests",
as: "test",
cond: { $eq: ['$$test.meta.category', 'math'] }
}
}
}
},
{
$project: {
question: "$tests.questions"
}
},
{ $unwind: "$questions"},
])
還試圖在管道末端添加$組:
{
$group:
{
_id: '$questions.type',
res: {
$addToSet: { correct: {$eq:['$questions.chosenAnswer', '$questions.answers.correct'] }
}
}
}
沒有變化給了我什麼我尋找,我敢肯定,我錯過了一個核心概念,我看過了文檔,並不能找出它..我基本上是尋找一個flatMap來提取所有用戶的所有問題,並按類型分組。
如果有人能帶領我走向正確的方向,我會非常感謝它:) thx。 (另外,我使用Meteor,所以任何查詢都必須在Meteor mongo中工作)
對不起,只有複製相關的領域,但它是一個錯誤,應該是元>類別>數學,而不是僅僅類..我會更新的Q,THX – webkit