0
配列内のサブ文書をフェッチしてフィルタリングしようとしています。mongoose 4.7.5:サブ文書を配列にフェッチする方法
文書は、この構造を有する:
{
"_id": {
"$oid": "58bc4fa0fd85f439ee3ce716"
},
"updatedAt": {
"$date": "2017-03-08T20:39:19.390Z"
},
"createdAt": {
"$date": "2017-03-05T17:49:20.455Z"
},
"app": {
"$oid": "58ae10852035431d5a746cbd"
},
"stats": [
{
"meta": {
"key": "value",
"key": "value"
},
"_id": {
"$oid": "58bc4fc4fd85f439ee3ce718"
},
"data": "data",
"updatedAt": {
"$date": "2017-03-05T17:49:56.305Z"
},
"createdAt": {
"$date": "2017-03-05T17:49:56.305Z"
}
},
{
"meta": {
"key": "value",
"key": "value"
},
"_id": {
"$oid": "58c06bf79eaf1f15aafe39d0"
},
"data": "data",
"updatedAt": {
"$date": "2017-03-08T20:39:19.391Z"
},
"createdAt": {
"$date": "2017-03-08T20:39:19.391Z"
}
}
]
}
二つの日付 間の統計配列内のサブ文書は、私はマングースクエリチェーンを試している何私が取得したい:
Model.findById(id)
.select('stats')
.where('stats.createdAt').gt(data-value).lt(data-value)
しかし、常に結果すべてのサブ文書を含む完全な文書。
はまた、私は、このような凝集を試してみました:
Model.aggregate({
$match: {
'stats.createdAt': '2017-03-05T17:49:56.305Z'
}
})
'2017-03-05T17:49:56.305Z'
がString
であるため、結果は常にnull
こんにちは!イベントの例はDBにありますが、ソリューションの結果は空ですarray [] – user3462064
おそらく 'ObjectId'型のため、投稿を更新しました –