2013-12-20 97 views
0

我有以下的文檔結構:春數據與蒙戈:子文檔名稱爲查詢參數

{ 
    "_id": "project1", 
    "customer": "someDefaultCustomer", 
    "users": { 
     "user1": { 
      "projectRoles": ["CUSTOMER"] 
     } 
    } 
} 

現在,我要查詢與用戶的所有項目都包含「用戶1」與春數據蒙戈:

@Query("{'users.?1': {$exists : true} }") 
Project findUserProject(String login); 

的問題是,春數據轉義查詢的更換,所以我得到了下面的「真正的」查詢:

osdmrqStringBasedMongoQuery - 創建查詢{ "users.\"user1\"" : { "$exists" : true}}

是否有可能避免逃跑?當然,我可以使用spring標準創建自定義查詢,但是我想保留'@Query'方法。

+0

我不知道Spring數據,但是如果你想匹配每個包含user1的文檔。在Mongo數據庫中的查詢應該是 – c24b

回答

0

通在全users.user1爲變量,即:

@Query("{?1: {$exists : true} }") 

如果你真的想避免這樣做,那麼有一個輔助函數,增加了百姓「的用戶。」在字符串的開頭,然後調用這個方法。