Meteor / React:通过表单输入和"点击"输入创建MongoDB条目



我是Meteor/React的新手。 我想构建一个实时页面,其中MongoDB集合中的条目将显示在网页上。 但是第一步是在MongoDB中创建这些对象,并为用户可以维护输入/输出的配置网页。

为此,我想创建一个配置页面,您可以在其中将属性/值添加到特定键。 为了说明我的想法,我创建了一个模型。

查看样机

在此前端(P1(中,您可以通过在文本框中输入文本并按"创建房屋"按钮来添加新房屋。如果您想删除房屋,请标记房屋并按"删除房屋"按钮。 添加和删除聊天室的逻辑相同。

如果有现有的条目,我会用这样的东西来获取它们:

//to get the House List
db.collection.distinct("House") 
//to get the Room List
db.collection.distinct("Room")

此页面背后的想法是,您可以通过双击房间列表中的条目将不同的房间分配给不同的房屋。

在MongoDB集合中,我希望配置在"双击"后立即看起来像这样:

{
_id: 1
"House": "House_1",
"Room": "Kitchen"
},
{
_id: 2
"House": "House_1",
"Room": "LivingRoom"
},
{
_id: 3
"House": "House_1",
"Room": "Bedroom"
}

在下一步中,我想配置不同房屋的不同房间。 前端(P2(具有与房屋配置相似的外观和功能。

现在我们开始配置不同房屋的不同房间。 首先,我想通过下拉列表选择房屋。选择房子后,在左侧的列表中,我会得到与房子链接的每个房间。 要配置房间中的家具,我将选择房间,然后双击添加家具。

之后,我的MongoDB集合看起来像这样:

{
_id: 4
"House": "House_1",
"Room": "Bedroom",
"Furniture": "Bed"
},
{
_id: 5
"House": "House_1",
"Room": "Bedroom",
"Furniture": "Desk"
},
{
_id: 6
"House": "House_1",
"Room": "Bedroom",
"Furniture": "Wardrobe"
}

我现在的问题是,我可以通过 Meteor/React 实现所需的功能吗?如果是这样,您将如何处理?

如果您已经读到这里,我非常感谢您,我期待您的意见!!

问候 奥克托德夫

看起来Mongo对你来说也是一个新工具,所以让我们先从最重要的事情开始: 数据库结构

首先,Mongo中没有增量id(你可以这样做,但老实说,没有理由这样做(

首先,我强烈建议您使用SimplSchema包。现在让我们来看看您的 House 集合的架构是什么样子的:

{
_id: String,
"name": String,
"RoomsIds": Array,
},

然后,让我们为"房间"创建一个单独的集合

{
_id: String,
"HouseId": String,
"Furnitures": Array,
"Furnitures.$": String, // Each element of array is an name of some furniture
},

顺便说一句,如果您打算对家具进行更高级的控制,那么最好不仅要有家具名称数组,还要有具有所需属性的对象数组。

当收藏品存在时,我认为您很容易编写在房屋中移动房间和在房间中移动家具的方法。请务必仔细检查 docs.meteor.com。顺便说一句,对于您来说,阅读此官方流星指南并在之后开始自己的项目工作可能是一个非常好的主意。无论如何,祝你好运,希望这里的一些建议对你有所帮助;)

最新更新