有什麼辦法可以修改find查詢中where-clause中的mongo值嗎?如何在查詢中的where子句中修改Mongo值?
這是一個我現在用:
$db->users->findOne(array("redirect_uri" => $arrParsedUrl['host']));
- 在這種情況下,我需要確保前面插入到數據庫中的值是唯一的URL的主機部分。
我想什麼做的是成才這樣的(但它不工作):
$db->users->findOne(array(parse_url("redirect_uri")['host'] => $arrParsedUrl['host']));
- 在這種情況下,我將能夠從一開始就插入了完整的URL數據庫。查詢中的「parse_url」函數確保只有主機部分被實際比較。
任何想法如何實現類似的東西?
編輯: 我不想更新數據庫中的值。只修改與輸入值比較的where子句中使用的數據庫中的值。
輸入值將始終是URL的主機部分。
EDIT2:
- 我有一個集合稱爲用戶的幾個文件。
- 所有文檔都有一個名爲「redirect_uri」的字段,其中包含一個URL。
- 當我使用url作爲輸入調用php函數時,我想返回文檔,其中輸入URL的主機部分與文檔中「redirect_uri」的主機部分相同。 例如http://www.foo.com/bananas(「redirect_url」)= http://www.foo.com/apples(輸入URL)
- 如何查詢MongoDB以獲取「redirect_url」的主機部分與輸入URL的主機部分相同的文檔?將輸入URL修改爲www.foo.com並不是問題,但是如何以相同的方式修改「redirect_url」部分以使查詢給我一個正確答案?
你想實現什麼?我不明白你的榜樣。 –