制作这个数组并存储在 mongodb 然后填充它

Posted

技术标签:

【中文标题】制作这个数组并存储在 mongodb 然后填充它【英文标题】:make this array and store in mongodb then populate it 【发布时间】: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 【参考方案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" ], 嘿嘿,我明白了,谢谢谢谢谢谢。 很高兴你能弄清楚。

以上是关于制作这个数组并存储在 mongodb 然后填充它的主要内容,如果未能解决你的问题,请参考以下文章

用随机列表中的 2 个值填充 2D 数组(2048 游戏)

MongoDB Mongoose 聚合查询深度嵌套数组删除空结果并填充引用

无法填充结构数组

解析对象数组并填充表格视图单元格 Swift

将值从 json 数据存储到 arraylist 并填充视图持有者

如何首先检查 mongodb 中的数组,如果它还没有包含这个项目(字符串),然后添加项目?