【问题标题】:make this array and store in mongodb then populate it制作这个数组并存储在 mongodb 然后填充它
【发布时间】:2021-06-02 18:12:32
【问题描述】:

我想在mongodb中做这种类型的数组

dishes: {dish1, dish2},

菜里应该有多道菜,而不仅仅是一道菜 所以输出看起来像

"dishes":{ //dish one object, //dish two object, }

我该怎么做。我使用 mongodb 作为数据库,使用 nodejs 作为服务器。

【问题讨论】:

  • 根据我的经验,您无法保存这样的数组。您必须将其保存为字符串"dishes": "{dish1, dish2}",或者您必须将其保存为数组"dishes":[dish1, dish2]
  • 那么架构是什么,我可以填充它并从管理菜单生成它
  • 你在用猫鼬吗?
  • 是的,我正在使用猫鼬和 nodejs。您可以在github.com/RosePinkDragon/College-Website 处查看代码,只需转到 backend/models/setdishmodel

标签: node.js arrays mongodb nested populate


【解决方案1】:
const yourSchema = new Schema({
    //Other properties,
    dishes: {
        type: [{
            dishName: {type: String},
            dishId: {type: String},
            //OtherProperties of dish object
        }],
        default: []
    },
    //Other properties
});

您可以在架构中定义这样的对象数组。我希望你正在使用猫鼬。有关更多信息,请参阅文档和此 answer

您的数据格式如下:

dishes: [
    {dishName: "dish1", dishId: "1", ... },
    {dishName: "dish2", dishId: "2", ... },
    .
    .
    .
]

【讨论】:

  • 以及如何从前端添加更多内容,请参阅此网站:food-ninjas.herokuapp.com/booking 在此处的“套餐”选项卡中,我创建了一个预定义的菜单。我想从前端做到这一点。
  • 我会检查并回复你
  • 嘿,快速更新一下,我已经弄清楚了后端和前端。感谢您的帮助,现在问题是我们如何填充它"dishes": [ { "_id": "604123ea6d7a5131a82109f2", "dishId": "601d1e647fab7d2090fdae99" } ],
  • 嘿嘿,我明白了,谢谢谢谢谢谢。
  • 很高兴你能弄清楚。
猜你喜欢
  • 2014-05-28
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 2014-12-05
  • 2019-08-06
  • 1970-01-01
  • 2016-09-21
  • 2010-12-11
相关资源
最近更新 更多