Я борюсь с тем, что кажется базовым поиском в mongodb. Я не могу понять, что происходит после нескольких комбинаций. Я вижу, что есть много вопросов о том, как с этим справиться, но ничего не получается после попытки ответить на все вопросы.
Вот мои пользователи коллекция
Вот мои предметы коллекция
Каждый элемент имеет одного владельца, который отображается на _id пользователя в коллекции пользователей.
По моему запросу я пытаюсь получить элементы с соответствующими пользователями. Это запрос
db.items.aggregate([
{
"$lookup" : {
localField : "owner",
from : "users",
foreignField : "_id",
as : "users"
}
}
])
Возвращает это -
Я пробовал разные варианты - например,
db.items.aggregate([
{
"$lookup" : {
localField : "owner.str",
from : "users",
foreignField : "_id.str",
as : "users"
}
}
])
, что приводит к неправильному заполнению массива пользователей (всеми пользователями!).
Что я делаю не так?
EDIT
вот предметов коллекция
{
"_id": {
"$oid": "5b268395c176db1548bd92c2"
},
"title": "Item #1",
"description": "Item 1 Description",
"categories": [
{
"$ref": "categories",
"$id": {
"$oid": "5b268248c176db1548bd92af"
}
}
],
"status": "borrowed",
"image": "http://cdn.site.com/testimage.png",
"borrower": "5b2684a0c176db1548bd92d5",
"owner": {
"$ref": "users",
"$id": {
"$oid": "5aecc8012d3d947ba130800d"
}
}
}
{
"_id": {
"$oid": "5b2c2c4d3c70af2da07d1266"
},
"title": "Item 2",
"description": "Item 2 Description",
"categories": [
{
"$ref": "categories",
"$id": {
"$oid": "5b268248c176db1548bd92af"
}
}
],
"status": "Available",
"image": "http://cdn.site.com/testimage1.png",
"borrower": null,
"owner": {
"$ref": "users",
"$id": {
"$oid": "5b2684a0c176db1548bd92d5"
}
}
}
Вот коллекция пользователей :
{
"_id": {
"$oid": "5aecc8012d3d947ba130800d"
},
"email": "n.y@gmail.com",
"registeredOn": "20/10/2018 12:12:29 AM",
"avatarURL": "http://gravtar.com/12334",
"friends": []
}
{
"_id": {
"$oid": "5b2684a0c176db1548bd92d5"
},
"email": "j.v@gmail.com",
"registeredOn": "20/10/2018 12:12:29 AM",
"avatarURL": "http://gravtar.com/12334",
"friends": [],
"wishlist": [
{
"$ref": "items",
"$id": {
"$oid": "5b2831543c70af2da07d11da"
}
}
]
}