2013-10-14 30 views
4

我有下面的代碼在蒙戈搜索數據庫使用的彈簧數據的MongoDB(版本1.2.3.RELEASE)MongoDB的春天數據標準不操作

Criteria searchCriteria = Criteria.where("NAME").is("TestName") 
     .and("ID").is("TestID").not().and("Age").is("23"); 

我得到了下面的查詢(不含未操作)

Query: { "NAME" : "TestName" , "ID" : "TestID", "Age" : "23" } 

我期待下面的查詢

Query: { "NAME" : "TestName" , "$not" : { "ID" : "TestID"}, "Age" : "23" } 

我到底做錯了什麼? 任何幫助,不勝感激。 感謝

回答

3

按照documentationnot()是影響條款後直接。那是.and("Age").is("23")。但你可能必須把它放在is之前。

Criteria searchCriteria = Criteria.where("NAME").is("TestName").and("ID").not().is("TestID").and("Age").is("23"); 

如果不工作,請嘗試使用andOperatornot().where("ID")結構。

+0

感謝您的回答。我試了一下,並出現以下錯誤。 'java.lang.RuntimeException:org.springframework.data.mongodb.InvalidMongoDbApiUsageException:無效查詢:'不'不能與'is'一起使用 - 使用'ne'代替。' – Viraj

+0

這會教你不要只使用你看到的第一個答案。編輯:你是我的意思是我。 – taylorcressy