下面是mongo文档结构,
{_id:123,imageShared:{imageId:345,likeCount:2,rateMedia:{rateVal1:1}}}
{_id:124,imageShared:{imageId:346,likeCount:3,rateMedia:{rateVal2:3}}}
{_id:125,imageShared:{imageId:347,likeCount:3}}
现在我需要获取具有rateVal1,rateVal2字段的文档。 为此我做了以下代码...
Query condition = new Query();
condition.addCriteria(
Criteria.where("imageShared.rateMedia.rateVal1").exists(true).
orOperator(Criteria.where("imageShared.rateMedia.rateVal2").exists(true));
我没有得到这些文件,因为我期待着123,124份文件。
感谢您的帮助。
答案 0 :(得分:2)
您需要获得与查询等效的内容
db.collection.find({
"$or": [
{ "imageShared.rateMedia.rateVal1": { "$exists": true } },
{ "imageShared.rateMedia.rateVal2": { "$exists": true } }
]
})
所以你应该尝试以下
Query condition = new Query(
new Criteria()
.orOperator(
Criteria.where("imageShared.rateMedia.rateVal1").exists(true),
Criteria.where("imageShared.rateMedia.rateVal2").exists(true)
)
);