[英]How to convert string to MongoDB objectId
我有這樣的內容this is my content
,我想將它存儲到 MongoDB 集合中。 問題是我想更新我的數據,並且我想在集合中找到數據的_id
而不將查詢發送到數據庫。 我想出了根據我的文檔內容生成我的_id
的想法。 我嘗試將內容轉換為 sha256 或...然后使用bson.ObjectId
中的 bson.ObjectId 生成我的_id
所以任何時候我想更新我的集合中的timestamp
,我只需生成_id
並發送更新查詢到數據庫集合。 但我面臨以下錯誤:
bson.errors.InvalidId: '3e2550e3ffd205d10900d893dd8d91be9f446d60' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string
我想知道這個想法是錯誤的還是......你能指導我嗎?
你的想法很好; 訣竅是您不必為_id
字段使用ObjectId
類型。 以下偽代碼在_id
是String
的情況下可以正常工作:
String sid = hex(sha256("this"+"is"+"my"+"content"));
Document doc = {_id:sid, theTimestamp:ISODate(), ... }
db.collection.insert(doc);
...
db.collection.update({_id:sid}, {$set: {theTimestamp:ISODate()});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.