我在 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
。我认为 [{..},{..},{..}]
是更好的结构,而不是 [[{..}][{..}]]
这个结构。
对于这个结构, postman 请求正文应该包含类似的内容。
{
"userId" : "59eee19696fe6560cd54a081",
"socketValue" : [{"id":"5a05855b10600e4aa5b3a48e" , "value" : "123" },{"id":"5a0ae037a90746c249b6c1f7" , "value" : "456" }]",
"isDeleted" : false
}
在你的服务器端代码中使用 like
var newSocket = new Socket(req.body); // assume your model name is Socket
newSocket.save();
关于node.js - 添加键值对数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386870/