在mongodb - sails.js中将uuid更改为整数id

时间:2014-10-27 17:07:25

标签: mongodb sails.js

所以我将sails.js数据库从localdisk切换到mongodb服务器,所有我的id都改为uuid id.i,发现普通id更容易,更清洁。我怎样才能将我的id再次变为整数id?

btw使用uuid有什么好处?以及如何使用该长ID进行更新请求?

 {
    "name": "Matan",
    "id": "544a7968101ca2903974cdc1",
    "createdAt": "2014-10-24T16:08:08.052Z",
    "updatedAt": "2014-10-24T16:08:08.052Z"
 }

1 个答案:

答案 0 :(得分:1)

这是MongoDB创建id的“正常”方式,是时间戳,机器标识符,进程ID和随机值的组合。

来自MongoDB网站:“存储在集合中的文档需要一个唯一的_id字段作为主键。因为ObjectIds很小,很可能是唯一的,并且可以快速生成”

不建议更改ID,因为它是您的主键,也许其他一些数据与它们相关。

如果你想拥有像1,2,3,4,5这样的id ......你必须设置自己的代,并在创建模型时保存id:

User.create({_id: 1, name: 'John'});

您可以通过蓝图api:

以与“短”ID相同的方式更新
PUT /user/544a7968101ca2903974cdc1

使用表单或通过ajax提交新数据。


更新现有模型示例的值:

var postId;
// create a blog post for example
$.ajax({
    url: '/post',
    method: 'POST', // create a new entry in the db
    data: {
        title: 'Untitled Post',
        text: 'Example blog post'
    },
    success: function(data){
        // data = {id: 'randomGeneratedId', title: 'Untitled Post', text: 'Example blog post'}
        postId = data.id;
    }
});

// later...
$.ajax({
    url: '/post/' + postId,
    method: 'PUT', // update this post in the db
    data: {
        image: 'path/to/image.jpg'
    },
    success: function(data){
        // data = {id: 'randomGeneratedId', image: 'path/to/image.jpg', title: 'Untitled Post', text: 'Example blog post'}
    }
});