在mongoose节点js中添加键值对数据

我在Mongoose中有一个模式,如下所示:

const SocketDetailsUserSchema = new mongoose.Schema({ userId: String, socketValue: [{ id: String, data : String }], isDeleted: Boolean, dateCreated: Date, updateAt: Date }); 

我想以数组格式在键值对中插入socketValue的数据。 应该看起来像

 { "_id" : ObjectId("5a12809c7f7afb1e3626857f"), "userId" : "59eee19696fe6560cd54a081", "socketValue" : [{"id":"5a05855b10600e4aa5b3a48e" , "value" : "123" }],[{"id":"5a0ae037a90746c249b6c1f7" , "value" : "456" }]", "isDeleted" : false "__v" : 0 } 

这是mongoose数据格式。

我如何可以像这样在mongoose中插入数据? 我也很困惑,我应该如何发布postman的数据在这里插入数据?

我认为你当前的结构是好的,只需添加_id: false以避免在socketValue添加自动生成的_id 。 喜欢

 socketValue: [{ id: String, data : String, _id: false }], 

对于这个结构数据将存储如:

 "socketValue" : [{"id":"5a05855b10600e4aa5b3a48e" , "value" : "123" },{"id":"5a0ae037a90746c249b6c1f7" , "value" : "456" }]" 

那么你可以轻松地更新或添加新的socketValue 。 我认为这个[{..},{..},{..}]是更好的结构,而不是[[{..}][{..}]]这个结构。

而对于这个结构邮递员请求体应该包含像。

 { "userId" : "59eee19696fe6560cd54a081", "socketValue" : [{"id":"5a05855b10600e4aa5b3a48e" , "value" : "123" },{"id":"5a0ae037a90746c249b6c1f7" , "value" : "456" }]", "isDeleted" : false } 

并在你的服务器端代码只是使用像

 var newSocket = new Socket(req.body); // assume your model name is Socket newSocket.save();