1

嗨,当我使用来自 produkt 的 _id 时,我遇到了无法进行查找的问题。我将 produkt id 存储在 kategoria id_produktow 数组中。我想将 kategoria nazwa 和 id_produktow 显示为 produkt nazwa。分类:

[
  {
    "_id": "5fbbf3c9f3a7db3368a78f3c",
    "nazwa": "Napoje",
    "id_produktow": [
      "5fbbf56cfb0d77336818500e",
      "5fbbf56cfb0d77336818500f",
      "5fbbf56cfb0d773368185010"
    ]
  },
  {
    "_id": "5fbbf3c9f3a7db3368a78f3d",
    "nazwa": "Słodycze",
    "id_produktow": [
      "5fbbf56cfb0d773368185011",
      "5fbbf56cfb0d773368185012",
      "5fbbf56cfb0d773368185013"
    ]
  },
  {
    "_id": "5fbbf3c9f3a7db3368a78f3e",
    "nazwa": "Pieczywo",
    "id_produktow": [
      "5fbbf56cfb0d773368185014",
      "5fbbf56cfb0d773368185015",
      "5fbbf56cfb0d773368185016"
    ]
  }
]

产品:

[
  {
    "_id": "5fbbf56cfb0d77336818500e",
    "nazwa": "Cola",
    "cena": "3.99",
    "opis": "Dwa litry popularnego napoju, którego nie może zabraknąc na Twoim stole."
  },
  {
    "_id": "5fbbf56cfb0d77336818500f",
    "nazwa": "Woda",
    "cena": "1.99",
    "opis": "Półtora litra nojpopularniejszego płynu na ziemi."
  },
  {
    "_id": "5fbbf56cfb0d773368185010",
    "nazwa": "Mleko",
    "cena": "2.49",
    "opis": "Pyszne mleko prosto od krowy."
  },
  {
    "_id": "5fbbf56cfb0d773368185011",
    "nazwa": "Żelki",
    "cena": "2.99",
    "opis": "Żelki z owocowym wypełnieniem."
  },
  {
    "_id": "5fbbf56cfb0d773368185012",
    "nazwa": "Cukierki",
    "cena": "1.99",
    "opis": "Cukierki z nadzieniem czekoladowym."
  },
  {
    "_id": "5fbbf56cfb0d773368185013",
    "nazwa": "Lizak",
    "cena": "0.99",
    "opis": "Lizak o smaku truskawkowym."
  },
  {
    "_id": "5fbbf56cfb0d773368185014",
    "nazwa": "Chleb",
    "cena": "2.49",
    "opis": "Świeży chleb z naturalnych składników."
  },
  {
    "_id": "5fbbf56cfb0d773368185015",
    "nazwa": "Bułka",
    "cena": "0.49",
    "opis": "Mięciutka bułka, gotowa być zjedzona na śniadanie."
  },
  {
    "_id": "5fbbf56cfb0d773368185016",
    "nazwa": "Bagietka",
    "cena": "1.99",
    "opis": "Długa bagietka dla smakoszy."
  }
]

询问:

db.Kategoria.aggregate(
  {
  $lookup: {
    from: 'Produkt',
    localField: 'id_produktow',
    foreignField: '_id',
    as: 'string'
  }}
)

结果:

[
  {
    _id: ObjectId("5fbbf3c9f3a7db3368a78f3c"),
    nazwa: 'Napoje',
    id_produktow: [
      '5fbbf56cfb0d77336818500e',
      '5fbbf56cfb0d77336818500f',
      '5fbbf56cfb0d773368185010'
    ],
    string: []
  },
  {
    _id: ObjectId("5fbbf3c9f3a7db3368a78f3d"),
    nazwa: 'Słodycze',
    id_produktow: [
      '5fbbf56cfb0d773368185011',
      '5fbbf56cfb0d773368185012',
      '5fbbf56cfb0d773368185013'
    ],
    string: []
  },
  {
    _id: ObjectId("5fbbf3c9f3a7db3368a78f3e"),
    nazwa: 'Pieczywo',
    id_produktow: [
      '5fbbf56cfb0d773368185014',
      '5fbbf56cfb0d773368185015',
      '5fbbf56cfb0d773368185016'
    ],
    string: []
  }
]

为什么没有结果?我试图改变像可乐这样的 nazwa 的身份证号码,它可以工作,但我想要身份证号码。我进行了搜索,但没有任何效果。也许在使用 db.Kategoria.aggregate 时有某种方法可以将 produkt _id 转换为字符串,然后我认为它应该可以工作。

4

0 回答 0