鍍金池/ 問答/數(shù)據(jù)庫/ mongodb 如何在插入新數(shù)據(jù)時,實現(xiàn)某個字段的自增?

mongodb 如何在插入新數(shù)據(jù)時,實現(xiàn)某個字段的自增?

像mysql我記得在新數(shù)據(jù)插入時可以自動實現(xiàn)id的自增,
mongodb可以實現(xiàn)嗎? 如果可以的話 需要在表設(shè)置時如何設(shè)置?

原因:
有個定時任務(wù)表,有beginTime, endTime, area三個字段,
在node服務(wù)啟動時,我先去數(shù)據(jù)庫里查詢該表所有數(shù)據(jù),然后一一設(shè)置定時任務(wù),

但是當(dāng) 定時任務(wù)被別人在網(wǎng)頁上人為取消(數(shù)據(jù)庫中該條數(shù)據(jù)刪除),我需要在刪除的同時clear掉該任務(wù),
所以想到增加一個字段name之類的字段,代表他的變量名,到時候刪除的時候,調(diào)用 eval(name).clear().

撤了那么多。

問題:

  1. mongodb 是否可以實現(xiàn) 在新增數(shù)據(jù)時,實現(xiàn)某個字段的自增?
  2. 還有沒有其他的方式可以實現(xiàn)我要的定時任務(wù)?
回答
編輯回答
夢一場

一般地,mongodb會自動插入一個唯一的_id字段作為pk

如果真的要自增,可以參考 https://docs.mongodb.com/v3.0...

簡單來講,就是:

  1. 建立一個自增計數(shù)器
  2. 創(chuàng)建一個函數(shù),使用findAndModify更新計數(shù)器(在update時用$inc進(jìn)行自增)
  3. 插入記錄時,使用該函數(shù)獲得自增的ID

至于你說的定時任務(wù),抱歉我沒看懂

2018年1月14日 20:13
編輯回答
孤客

新建個集合來保存id,每次新增數(shù)據(jù)$inc下。

你這個需求我覺得直接查找mongo自動生成的ObjectId也可以

2018年3月16日 06:11