繁体   English   中英

sails.js更新或添加新行

[英]sails.js update or add new row

我正在使用sails.js开始一个项目,我对此有些困惑。

我有这样的结构

[
  {
    "logins": {
      "1": {
        "login time": "2016-04-02T11:40:06.731Z"
     }
    }
    "username": "test",
    "password": "test",
    "createdAt": "2016-04-02T11:40:06.731Z",
    "updatedAt": "2016-04-02T11:40:06.731Z",
    "id": "56ffaf9692bcf108169ef7c8"
  }
]

现在,当用户再次登录时,理想情况下,我希望数据看起来像这样

[
  {
    "logins": {
      "1": {
        "login time": "2016-04-01T11:40:06.731Z"
     },
      "2": {
        "login time": "2016-04-02T11:40:06.731Z"
     }
    }
    "username": "test",
    "password": "test",
    "createdAt": "2016-04-01T11:40:06.731Z",
    "updatedAt": "2016-04-01T11:40:06.731Z",
    "id": "56ffaf9692bcf108169ef7c8"
  }
]

但是,对于我来说,我无法确定如何为用户“更新”或“插入”“登录”下的新行。

创建第一个记录很好,到目前为止,我能想到的最好的办法是将登录的当前值读取到缓冲区中,然后重新插入所有值。

看起来很笨拙。 有谁知道风帆是否有某种内置方法来支持我要实现的目标?

我将您的“ Logins”参数更改为array。 比起您在更新时可以使用$ push。 水线仅支持$ set操作,因此,如果要执行此操作,则需要使用.native(),如下所示:

Model.native(function(error,collection){
    collection.update(
        {_id:YOURID}, // where condition
        {$push:{logins:new Date()}}, // push new value to array
        {}, // options
        function(error,result){} // callback
    )
})

要查看您可以使用本机做什么,请参阅Node.js MongoDB驱动程序API-集合

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM