私は3つのコレクションを持っています:User、Link、LinkView。
User:
{
"_id": "ID",
"username": "nick"
}
Link:
{
"_id": "ID",
"url": "http://google.com/",
"user": {
"$ref": "User",
"$id": "ID",
"$db": "database_name"
}
}
LinkView:
{
"_id": "ID",
"created": "date",
"link": {
"$ref": "Link",
"$id": "ID",
"$db": "database_name"
}
}
は、今私は、特定のユーザーが作成したLinkViewsを取得したいが、私はこの$の試合をしようとすると、私に空のデータを返します:
{
$match: {
"link.user.id" : "ID"
}
}
私は特定のユーザによってLinkViewsを選択することができますどのように?
サンプルデータ:
User:
{
"_id" : "584e7fee1ccd5604a52ec901",
"username" : "nick",
}
Link:
{
"_id" : "584e814e1ccd5604ac025313",
"url": "http://google.com/",
"user": {
"$ref": "User",
"$id": "584e7fee1ccd5604a52ec901",
"$db": "test"
}
}
LinkView:
{
"_id": "584e82191ccd560f0b690791",
"created": "2016-12-12T09:54:10.000Z",
"link": {
"$ref": "Link",
"$id": "584e814e1ccd5604ac025313",
"$db": "test"
}
},
{
"_id": "584e82191ccd560f0b690795",
"created": "2016-12-12T10:54:10.000Z",
"link": {
"$ref": "Link",
"$id": "584e814e1ccd5604ac025313",
"$db": "test"
}
},
{
"_id": "584e82301ccd560f0b690796",
"created": "2016-12-12T11:54:10.000Z",
"link": {
"$ref": "Link",
"$id": "584e814e1ccd5604ac025313",
"$db": "test"
}
}
集約パイプラインの例は:
Array
(
[0] => Array
(
[$project] => Array
(
[hour] => Array
(
[$hour] => $created
)
)
)
[1] => Array
(
[$match] => Array
(
[link.user._id] => 584e7fee1ccd5604a52ec901
)
)
[2] => Array
(
[$group] => Array
(
[_id] => $hour
[value] => Array
(
[$sum] => 1
)
)
)
)
あなたが試したすべてのクエリを共有したり、データをサンプリングしたりできますかLinkViewのために? –
テキストに追加、希望はOKです。 –