Node.js 在mongodb中,代表餐厅菜单的最佳方式是什么?

Node.js 在mongodb中,代表餐厅菜单的最佳方式是什么?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,试图为本地应用程序构建合适的架构,以显示少数餐厅的菜单 因此,我在DB中几乎没有位置,它们都可以有不同的菜单类别和所有不同的项目,您会推荐什么作为在mongodb中表示这一点的最佳方式(我将mongoose与node.js一起使用)查看mongodb手册 在您的情况下,您可以这样做: 餐厅文件: { _id: <ObjectId1>, restaurantname: "123xyz", phone: "123456" adress: "Adress" } { _

试图为本地应用程序构建合适的架构,以显示少数餐厅的菜单 因此,我在DB中几乎没有位置,它们都可以有不同的菜单类别和所有不同的项目,您会推荐什么作为在mongodb中表示这一点的最佳方式(我将mongoose与node.js一起使用)

查看mongodb手册

在您的情况下,您可以这样做:

餐厅文件:

{
  _id: <ObjectId1>,
  restaurantname: "123xyz",
  phone: "123456"
  adress: "Adress"
}
{
  _id: <ObjectId2>,
  restaurant_id: <ObjectId1>,
  cat_name: "breakfast"
}
{
  _id: <ObjectId3>,
  categories_id: <ObjectId2>,
  subcat_name: "Eggs"
}
{
  _id: <ObjectId4>,
  subcat_id: <ObjectId3>,
  saucer_name: "fried eggs",
  description: "fried eggs description",
  price: "$00.00"
}
{
_id:,
餐厅名称:“123xyz”,
电话:123456
地址:“地址”
}
类别文件:

{
  _id: <ObjectId1>,
  restaurantname: "123xyz",
  phone: "123456"
  adress: "Adress"
}
{
  _id: <ObjectId2>,
  restaurant_id: <ObjectId1>,
  cat_name: "breakfast"
}
{
  _id: <ObjectId3>,
  categories_id: <ObjectId2>,
  subcat_name: "Eggs"
}
{
  _id: <ObjectId4>,
  subcat_id: <ObjectId3>,
  saucer_name: "fried eggs",
  description: "fried eggs description",
  price: "$00.00"
}
{
_id:,
餐厅编号:,
猫的名字:“早餐”
}
子类别文件:

{
  _id: <ObjectId1>,
  restaurantname: "123xyz",
  phone: "123456"
  adress: "Adress"
}
{
  _id: <ObjectId2>,
  restaurant_id: <ObjectId1>,
  cat_name: "breakfast"
}
{
  _id: <ObjectId3>,
  categories_id: <ObjectId2>,
  subcat_name: "Eggs"
}
{
  _id: <ObjectId4>,
  subcat_id: <ObjectId3>,
  saucer_name: "fried eggs",
  description: "fried eggs description",
  price: "$00.00"
}
{
_id:,
类别编号:,
子类别名称:“鸡蛋”
}
飞碟文件:

{
  _id: <ObjectId1>,
  restaurantname: "123xyz",
  phone: "123456"
  adress: "Adress"
}
{
  _id: <ObjectId2>,
  restaurant_id: <ObjectId1>,
  cat_name: "breakfast"
}
{
  _id: <ObjectId3>,
  categories_id: <ObjectId2>,
  subcat_name: "Eggs"
}
{
  _id: <ObjectId4>,
  subcat_id: <ObjectId3>,
  saucer_name: "fried eggs",
  description: "fried eggs description",
  price: "$00.00"
}
{
_id:,
子类别id:,
碟名:“煎蛋”,
描述:“煎蛋描述”,
价格:$00.00
}
并在本例中检查:

{
  _id: <ObjectId1>,
  restaurantname: "123xyz",
  phone: "123456"
  adress: "Adress"
  categories:
    {
      _id: <ObjectId2>,
      cat_name: "breakfast",
      subcat:
        {
          _id: <ObjectId3>,
          subcat_name: "Eggs"
          saucer document
            {
              _id: <ObjectId4>,
              saucer_name: "fried eggs",
              description: "fried eggs description",
              price: "$00.00"
            }
        }
    }
}
{
_id:,
餐厅名称:“123xyz”,
电话:123456
地址:“地址”
类别:
{
_id:,
猫名:“早餐”,
子类别:
{
_id:,
子类别名称:“鸡蛋”
碟形文件
{
_id:,
碟名:“煎蛋”,
描述:“煎蛋描述”,
价格:$00.00
}
}
}
}

对于堆栈溢出来说,这是一个过于宽泛的问题。从你最好的猜测开始,在使用时发现问题,想出更好的主意,然后重复。我完全不知道如何实现更好的查询机制,因为查询嵌入式文档听起来不是很好,或者编辑,特别是如果嵌套级别像3rdi如果你还没有读过,从这里开始:非常感谢,still正在寻求那些可能已经构建了类似结构的人的建议如果您担心基于文档的方法效率低下,为什么不根据您喜欢的数据组织选择工具,而不是相反?话虽如此,如果你谈论的是“几家”餐厅及其菜单,我真的认为你不必太担心性能。此外,在您的问题中,您没有给出您希望对数据执行的查询类型的指示,这实际上是如何组织它们的主要驱动因素。典型的问题是“给我拿切兹·托尼的菜单”还是“给我看意大利面条的位置”?