制作这个数组并存储在 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 然后填充它的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB Mongoose 聚合查询深度嵌套数组删除空结果并填充引用