2017-04-09 28 views
1

MongoDB可以通過它的散列查找數據嗎?使用MongoDB查找散列數據

我試圖找到的MongoDB相當於這個MySQL查詢:

SELECT column FROM table WHERE SHA1(column) = "value"

+0

任何原因不搜索原始值? –

+0

在我的上下文中,值將是id,並且將被用戶用來確認某些內容。我不希望用戶確認別人的價值,因爲它不是應用程序的認證部分。 – Leekie

+0

如果您希望查詢速度很快,您應該將哈希值存儲在集合中,並對其進行索引。 –

回答

0

It doesn't seems there is any such functionality(有點老了,但找不到docs.mongodb.com其一),但您可以在mongo shell中包含一個包含sha1功能的庫(例如js-sha1),並使用load函數,然後在您的mongo操作中使用它。

+0

謝謝!在mongo shell中加載js-sha1後得到'true'。 你能幫我弄清楚如何用'sha1'函數做'db.collection.find()'查詢嗎?此外,似乎我需要在每次啓動時執行'load()',是否有辦法自動執行此操作? – Leekie

+0

@Leekie我想你可以在你的服務器啓動時在你的mongodb連接後創建步驟中使用load命令,例如在spring中;在生成'mongoTemplate' [bean](http://www.mkyong.com/mongodb/spring-data-mongodb-hello-world-example/)時,在返回bean之前,可以執行該命令來加載這個js庫。對不起,我不能給出確切的細節,但有想法。我認爲在部署過程中加載庫是可以接受的,但在每次操作過程中都不能如您所說。 –

+0

@Leekie這個答案不令人滿意? –