2017-10-06 68 views
0

我需要在Cloudant DataBase中執行查詢,在該數據庫中將數字與定義爲字符串的小數與服務器發送的另一個數字進行比較。問題在於比較字符串,我需要它作爲數字比較。在執行查詢時,通過將數據庫參數轉換爲float可以執行此搜索嗎? O還有另一種方法來做這個查詢?在Cloudant查詢中將字符串參數轉換爲浮點數

這是服務器中的查詢,value.precio作爲字符串從客戶端發送。

 value.precio = value.precio.split("-"); 
     var precio_init = value.precio[0]; 
     var precio_final = value.precio[1]; 

     value.precio = { 
      "$gte":precio_init, 
      "$lte":precio_final 
     }; 

而且在我的數據庫,這是我想要搜索的參數爲:

「PRECIO」: 「13.39」

感謝

+0

你能提供一個具體的例子和說明你的文件的相關部分正試圖查詢? – ptitzler

+0

我編輯了我的問題......我希望這已經足夠了謝謝 –

回答

0

我不認爲你可以使用Cloudant Query執行此操作,但您可以嘗試Cloudant Search。創建類似於下面的一個新的搜索索引:

設計文件:myDesignDoc

指數名稱:byPrecio

指數:

function (doc) { 
    if (doc.precio) { 
    index("precio", parseFloat(doc.precio)); 
    } 
} 

然後你可以使用範圍進行搜索。例如:

precio:[13 TO 14] 

上Cloudant全搜索應該是這樣的:

https://xxx.cloudant.com/YOUR_DB/_design/myDesignDoc/_search/byPrecio?q=precio:[13%20TO%2014]&include_docs=true

樣本響應:

{ 
    "total_rows":1, 
    "bookmark":"g2wAAAAxxx", 
    "rows":[ 
    { 
     "id":"74fa6ff1b6dbca8c10d677832f6a3de2", 
     "order":[ 
     1.0, 
     0 
     ], 
     "fields":{ 

     }, 
     "doc":{ 
     "_id":"74fa6ff1b6dbca8c10d677832f6a3de2", 
     "_rev":"2-17c984e51102b719fe9f80fc5d5bc78e", 
     "precio":"13.39", 
     "otherField":"otherValue" 
     } 
    } 
    ] 
} 

More info on Cloudant Search here

+0

嗨,我沒有試圖在雲查詢中進行轉換。我使用了你給我們的設計文檔,但是雲查詢precio:[13到14]不起作用。感謝您的回覆 –

+0

這使用Cloudant Search而不是Cloudant Query。你在使用Cloudant Search嗎? https://console.bluemix.net/docs/services/Cloudant/api/search.html#search – markwatsonatx

相關問題