2013-04-07 26 views
10

Tôi đang gặp phải vấn đề về API tiêu chuẩn dữ liệu Spring MongoDB orOperator.Dữ liệu mùa xuân MongoDB - Tiêu chí API OrOperator không hoạt động đúng cách

Dưới đây là kết quả truy vấn cho các động từ bất quy tắc: (ga đầu ra)

> db.verb.find({'v2':'wrote'}); 
{ "_id" : ObjectId("5161a8adba8c6390849da453"), "v1" : "write", "v2" : "wrote", "v3" : "written" } 

Và tôi truy vấn động từ bởi v1 hoặc v2 của họ giá trị sử dụng mùa xuân dữ liệu MongoDB Tiêu chuẩn API:

Criteria criteriaV1 = Criteria.where("v1").is(verb); 
Criteria criteriaV2 = Criteria.where("v2").is(verb); 
Query query = new Query(criteriaV1.orOperator(criteriaV2)); 
List<Verb> verbList = mongoTemplate.find(query, Verb.class) 

Nhưng không may là verbList không có bất kỳ mục nào.

Trả lời

29

Theo như tôi nhớ để sử dụng orOperator bạn nên làm:

Query query = new Query(new Criteria().orOperator(criteriaV1,criteriaV2));
+0

nhờ sự giúp đỡ của bạn; sau khi tôi kiểm tra nhật ký ứng dụng, tôi thấy thông số đầu tiên được sử dụng như một tiêu chí VÀ. Vì vậy, giải pháp đang sử dụng phiên bản Tiêu chí mới như bạn đã viết hoặc thêm điều kiện luôn đúng. – talha06

+0

Làm cách nào chúng tôi có thể sử dụng nhiều orOperator để tìm kiếm nhiều tiêu chí? –

Các vấn đề liên quan