【发布时间】:2018-12-08 19:21:45
【问题描述】:
我需要使用这样的 mongodb 记录:
{
"_id": {
"$oid": "5c09ae281646e8d8bad07d73"
},
"name": "somename",
"genre": "somegenre",
"indexes": {
"index1": 1,
"index2": 7,
"index3": 7,
"index4": 7,
"index5": 7,
"index6": 7,
"index7": 7,
"index8": 7,
"index9": 7,
"index10": 7,
"index11": 7,
"index12": 9,
"index13": 5,
"index14": 15,
"index15": 8,
"index16": 17
},
"date": {
"$date": "2018-12-06T23:18:00.532Z"
},
"__v": 0
}
我为猫鼬设置了这样的架构
const ItemSchema = new Schema({
name: {
type: String,
required: true
},
genre: {
type: String,
required: true
},
indexes: {
type: Object,
required: true,
properties: {
index1: {
type: Number,
required: true
},
index2: {
type: Number,
required: true
},
index3: {
type: Number,
required: true
},
index4: {
type: Number,
required: true
},
index5: {
type: Number,
required: true
},
index6: {
type: Number,
required: true
},
index7: {
type: Number,
required: true
},
index8: {
type: Number,
required: true
},
index9: {
type: Number,
required: true
},
index10: {
type: Number,
required: true
},
index11: {
type: Number,
required: true
},
index12: {
type: Number,
required: true
},
index13: {
type: Number,
required: true
},
index14: {
type: Number,
required: true
},
index15: {
type: Number,
required: true
},
index16: {
type: Number,
required: true
}
}
},
他们是我的路由器帖子(快递)
router.post("/", (req, res) => {
const newItem = new Item({
name: req.body.name,
genre: req.body.genre,
indexes: {
index1: req.body.indexes.index1,
index2: req.body.indexes.index2...
他们输入设置索引值(我使用名称属性来定义我将如何设置新项目):
<input
type="text"
name="indexes.index1"
placeholder="sample 1"
onChange={this.onChange}
/>
和功能
onChange = e => {
this.setState({ [e.target.name]: e.target.value });
};
和
onSubmit = e => {
const newItem = {
name: this.state.name,
genre: this.state.genre,
indexes: {
index1: this.state.indexes.index1,
...
他们在 MongoDB 中的结果是:
{
"_id": {
"$oid": "5c0c22d41e3d5115dda930aa"
},
"name": "name",
"genre": "somegen",
"indexes": {
"index1": "",
"index2": ""
索引中没有值 任何的想法?建议?
谢谢各位。 塞巴
【问题讨论】:
-
您能否更具体地谈谈“我尝试创建新项目时遇到问题”?究竟会发生什么?
-
是的,当然,当我尝试从输入表单设置其中一个索引的值时,我使用名称:indexes.index1 但在创建新项目时不起作用
-
在
new Item()之前是否有req.body的输出?您可以将其添加到问题中,这将非常有帮助。在const newItem ...之前的console.log( req.body )之类的东西会这样做。 -
是的,我在原始问题中添加了,谢谢
标签: javascript node.js reactjs mongodb express