Javascript 在mongo db中增加索引
在mongo db中添加名为Javascript 在mongo db中增加索引,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,在mongo db中添加名为date的字段时,我只需执行以下操作: date: { type: Date, default: Date.now } 创建新收藏时,它会自动将date字段添加到我的新收藏中。有没有办法向我的收藏中添加自增索引(id) 注意:我尝试在客户端执行此操作,但是每次我使用(id)字段推送集合时,它都会从集合中删除并替换为带有随机字符的长字符串\u id。好久不见 寻找每一个提示 编辑:负责向数据库添加用途的代码 app.post("/users", fun
date
的字段时,我只需执行以下操作:
date: {
type: Date,
default: Date.now
}
创建新收藏时,它会自动将date
字段添加到我的新收藏中。有没有办法向我的收藏中添加自增索引(id
)
注意:我尝试在客户端执行此操作,但是每次我使用(id
)字段推送集合时,它都会从集合中删除并替换为带有随机字符的长字符串\u id
。好久不见
寻找每一个提示
编辑:负责向数据库添加用途的代码
app.post("/users", function (req, res) {
createUser(req.body, function (err, user) {
if (err) {
return res.json(err);
}
return res.json(user);
});
});
MongoDB会自动为数据库中的每个对象生成唯一的id,从而使每个条目都有一个唯一的_id字段作为一个标记。您实际上不需要担心指定自定义ID 如果希望对象大致按照创建顺序进行排序,可以按_id进行排序,也可以添加一个在创建时设置的日期字段并按该字段进行排序
除此之外,我不确定使用自动递增ID会带来什么好处。有多种方法可以实现自动递增索引,但这不是一种好的做法 详情如下: 查看Rizwan Siddiquee的答案,了解如何使用存储的javascript函数实现它
另一种方法是使用任何类型的ODM在应用层实现它,但这显然是危险的,对于严肃的应用程序来说不太可靠 我也会投票支持使用ObjectId——这是一个有很多好处的至高无上的概念。为了帮助您解决问题,我需要查看您用于将对象写入MongoDB的代码。@dnickless我更新了我的帖子:)在
req.body
中有什么?@dnickless用户信息(只是一个表单值)我只是问,因为驱动程序不应该简单地覆盖您的“\u id”字段,但我不想在路径中使用那么长的id。Im使用路径:/user/:id
。如果我使用它,它将产生一个链接:mydomain.com/user/13k4r3f329d3dk
,这将是荒谬的。看起来很奇怪,对吧?但如果它是从0开始递增的,那么它将是mydomain.com/user/1
。看起来更好,对吧?@Patrickkx:“看起来更好,对吧?”-你不会手动输入这些URL(或记住它们),所以不清楚你为什么会太在意这些?¯\_(ツ)_/''有些浏览器甚至不会显示地址的这一部分。另外,mongodb有很好的理由使用ObjectId作为默认id类型:在分布式数据库中很难维护自动递增序列。