node.js - 添加键值对数据

标签 node.js mongodb reactjs mongoose

我在 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/

相关文章:

mongodb - Mongo Spark连接器和mongo 3.2,root用户无法读取数据库

javascript - NodeJS 中的 Axios.all 失败并出现 404 错误

reactjs - React Router 4 在谷歌缓存上显示 404 页面

Node.JS 合并和 Swig

node.js - 将获取查询与插入查询相结合

mongodb - 查找日期在从现在起一分钟内的条目,但不管是哪一天

javascript - 我应该在何时何地为 Redux 存储中的规范化数据使用 "fetchingData"状态?

reactjs - 使用 Material-UI 主题更改根背景颜色

node.js - ZIP 文件在上传到 S3 期间损坏

javascript - Python 的 "\x00"是否存在于 javascript 中?