Javascript 在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

在mongo db中添加名为
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类型:在分布式数据库中很难维护自动递增序列。