我在Mongoose中有一个如下所示的模式:
const SocketDetailsUserSchema = new mongoose.Schema({
userId: String,
socketValue: [{
id: String,
data : String
}],
isDeleted: Boolean,
dateCreated: Date,
updateAt: Date
});
我想以数组格式在key value对中插入socketValue的数据。这应该是什么样的,
{
"_id" : ObjectId("5a12809c7f7afb1e3626857f"),
"userId" : "59eee19696fe6560cd54a081",
"socketValue" : [{"id":"5a05855b10600e4aa5b3a48e" , "value" : "123" }],[{"id":"5a0ae037a90746c249b6c1f7" , "value" : "456" }],
"isDeleted" : false
"__v" : 0
}
这是猫鼬数据格式。
如何在像这样的猫鼬中插入数据? 我也很困惑,我应该如何从邮递员发布数据到这里插入数据?
答案 0 :(得分:0)
我认为您当前的结构很好,只需添加_id: false
即可避免在_id
中添加自动生成的socketValue
。像
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();
答案 1 :(得分:0)
您的邮递员输入数据应为原始json格式
{
"userId" : "59eee19696fe6560cd54a081",
"socketValue" : [{"id":"5a05855b10600e4aa5b3a48e" , "value" : "123" },{"id":"5a0ae037a90746c249b6c1f7" , "value" : "456" }]",
"isDeleted" : false
}
您的服务器代码
var insertDoc = new collectionname(details);
inserDoc.save(function (err) {
if (err) {
//callback err
} else {
//callback result
}
});