代码改变世界

MongoDB中关于查询条件中包括集合中字段的查询

2017-05-08 20:09  tlnshuju  阅读(3458)  评论(0编辑  收藏  举报

要查询的数据结构例如以下:

以查询当中的versionLimitList字段为例

MongoOperations工具类查询相关语句

<pre name="code" class="java">Criteria criteria1 = Criteria.where("validStartTime").gt(new Date()).
		and("versionLimitList").elemMatch
		(Criteria.where("clientId").is(109).
		and("platFormCode").is(2);


查询validStartTime大于当前时间,而且versionLimitList字段中的clientId属性值为109和platFormCode属性值为2

MongoVue中的语句

{
    "validStartTime": {
        "$gt": ISODate("2014-11-01T10:33:09.661Z")
    },
    "versionLimitList": {
        "$elemMatch": {
            "clientId": 109,
            "platFormCode": 2
        }
    }
}

相应实际运行的语句

db.systemInfo211.find({ "validStartTime" : { "$gt" : ISODate("2014-11-01T10:33:09.661Z") }, 
"versionLimitList" : { "$elemMatch" : { "clientId" : 109, "platFormCode" : 2 } } }).limit(50);

查询结果例如以下