簡體   English   中英

如何將字符串轉換為 MongoDB objectId

[英]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類型。 以下偽代碼在_idString的情況下可以正常工作:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM