Я читаю MongoDB in Action, и когда я говорю о запросе отношений «многие ко многим» в документе, мне трудно понять, как он написал свой примерный запрос (используя драйвер Ruby) ,Запросить отношение «многие ко многим» в MongoDB
Запрос - найти все товары определенной категории, в которых есть коллекция products
и category
. Автор говорит: «Для того, чтобы запросить все продукты в категории Садоводство инструмент, код прост:
db.products.find({category_ids => category['id']})
ПРОДУКТ, как это:
doc =
{ _id: new ObjectId("4c4b1476238d3b4dd5003981"),
slug: "wheel-barrow-9092",
sku: "9092",
name: "Extra Large Wheel Barrow",
description: "Heavy duty wheel barrow...",
details: {
weight: 47,
weight_units: "lbs",
model_num: 4039283402,
manufacturer: "Acme",
color: "Green"
},
category_ids: [new ObjectId("6a5b1476238d3b4dd5000048"),
new ObjectId("6a5b1476238d3b4dd5000049")],
main_cat_id: new ObjectId("6a5b1476238d3b4dd5000048"),
tags: ["tools", "gardening", "soil"],
}
И КАТЕГОРИЯ док, как это:
doc =
{ _id: new ObjectId("6a5b1476238d3b4dd5000048"),
slug: "gardening-tools",
ancestors: [{ name: "Home",
_id: new ObjectId("8b87fb1476238d3b4dd500003"),
slug: "home"
},
{ name: "Outdoors",
_id: new ObjectId("9a9fb1476238d3b4dd5000001"),
slug: "outdoors"
}
],
parent_id: new ObjectId("9a9fb1476238d3b4dd5000001"),
name: "Gardening Tools",
description: "Gardening gadgets galore!",
}
может кто-то пожалуйста, объясните это немного больше для меня? Я до сих пор не могу понять, как он писал, что запрос :(
Спасибо всем.
Спасибо за подробное объяснение. Mongodb в книге действий использует код Ruby для таких примеров языка. – Bohn
Итак, в его примере «id» имеет особое значение и должен быть передан как есть? Вот где я запутался. – Bohn
Не имея возможности увидеть книгу, похоже, что 'category_id' может быть массивом/переменной, которую автор заполнил идентификатором нужной категории (шаг 1 в моем ответе выше). Я не знаю Ruby, поэтому трудно понять, как интерпретировать код. Спасибо за согласие :) – chrisbunney