2017-04-06 40 views
1

我對Oracle非常熟悉,突然間我不得不使用MongoDB數據庫創建一個項目。我正在使用貓鼬來連接到我的MongoDB。我的問題是,在查詢之前可以匹配查找條件嗎? 例如,我在我的MongoDB中獲得了這個name : John,然後我只需要通過Oracle SQL來完成此操作。Mongoose - 是否可以修改鍵值以匹配find()查詢的條件?

SELECT * FROM MY_SCHEMA.WORKERS WORKER 
 
WHERE UPPER(WORKER.NAME) = 'JOHN'

在MongoDB中,我所知道的,可以做的就是這個。

var mongoose = require('mongoose'); 
 
mongoose.connect('localhost:27017/myDB'); 
 
workers.find(
 
    { 
 
    "name": "JOHN" 
 
    } 
 
);

我一直在尋找解決方案,並不能找到一個。有沒有辦法將name的值設置爲大寫以匹配我需要的結果?

任何幫助,將不勝感激:)

編輯: 我找到了解決這個問題,通過使用正則表達式()的貓鼬。 RegExp將使我的mongoDB文檔不區分大小寫以匹配我的查詢參數。在這個答案的更多細節。 https://stackoverflow.com/a/9824712/7498283

回答

1

如果您想使用大寫字母查找,您可以使用javascript的toUpperCase()refer-doc

嘗試下面的代碼:

workers.find(
{ 
    "name": ("JOHN").toUpperCase() 
}); 

希望這會有所幫助。

+0

這是我的文檔中的'value',我需要upperCase,而不是從我的客戶端發送參數。但是,謝謝你的迴應。 :D –

+0

你能告訴我們你的數據庫和你想用查找查​​詢得到什麼嗎? – Shrabanee

+1

https://pastebin.com/kfJp6pgQ例如,我需要使用'JOHN'作爲我的過濾器來獲得'John'。 Thankyou:D –

0

您可以在mongodb中使用$ toUpper運算符。

worker.aggregate([ 
      {$project: {"name":{$toUpper:"$name"}}}, 
      {$find:{"name":"JOHN"}} 
    ]); 
+0

對不起,我正在用貓鼬做數據庫CRUD。我編輯我的帖子只是爲了指出。你有任何使用貓鼬在mongoDB中運行的解決方案嗎? –

相關問題