2011-03-17 69 views
7

我正在研究mongodb。我想在其中使用像查詢。我的收藏結構如下。像mongoDB中的查詢

{ "name" : "xy" , "age" : 34 , "location" : "sss"} 

{ "name" : "xyx" , "age" : 45 , "location" : "sshs"} 

{ "name" : "x" , "age" : 33 , "location" : "shhss"} 

{ "name" : "pq" , "age" : 23 , "location" : "hhh"} 

{ "name" : "pqr" , "age" : 12 , "location" : "sss"} 

我想查找匹配「name」:「x」的記錄。

所以查詢將返回匹配xy,xyz,x的所有三條記錄。

在mongo中可能嗎?

如果有人知道PLZ回覆。

感謝

回答

8

您可以使用正則表達式來做到這一點:

db.customers.find({ name : /^x/i }); 

你可能會想對名稱領域的一些指標。

閱讀更多的MongoDB Documetation網站。

+1

索引將不起作用與case-insensetive正則表達式 – pingw33n 2011-03-17 15:06:20

+0

@ pingw33n有一個好點。一種方法是在集合中添加另一個字段,該字段存儲該名稱的downcase值,對其進行索引,然後將其與輸入的查詢結果進行比較。 – blu 2011-03-17 20:57:53

+0

@ pingw33n謝謝你指出。 @blu這就是我在這種情況下使用的方法,它似乎運作良好,除非您確實需要區分大小寫,其中有一個「Xx」值和一個「xX」,並且它們都歸一化爲「xx」。 – 2011-03-18 05:38:42