所以我将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"
}
答案 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'}
}
});