子文档上的Spring Data MongoDB索引查询

时间:2012-11-14 12:41:19

标签: mongodb spring-data

MongoDB Documentation中,我们得到了以下示例:

db.factories.insert( { name: "xyz", metro: { city: "New York", state: "NY" } } );
db.factories.ensureIndex( { metro : 1 } );
// this query can use the above index:
db.factories.find( { metro: { city: "New York", state: "NY" } } );

我目前正在寻找一种解决方案,以便在spring数据中实现此查询。我的第一个方法是

Query.query(Criteria.where("metro")
    .andOperator(Criteria.where("city").is("New York")
    .and("state").is("NY")))

但这导致以下查询

{ "metro" : { } , "$and" : [ { "city" : "New York" , "state" : "NY"}]}

1 个答案:

答案 0 :(得分:0)

最后,我通过摆弄来找到解决方案:

Query.query(Criteria.where("metro").is(
    Query.query(
        Criteria.where("city").is("New York")
        .and("state").is("NY")).getQueryObject()
    )
)
// results in { metro: { city: "New York", state: "NY" } }

希望这是正确的方法......