java - 查询 mongodb 的 map 类型字段

标签 java spring mongodb spring-data-mongodb

我的条目是:

{
  "_id": 722,
  "mappings": [
    {
      "name": "sercan",
      "test2": {
        "code": "PI"
      },
      "codes": {
        "individual": "false",
        "servicetype": "APPART"
      }
    }
  ]
}

查询是:

db.myCollection.find({
                      "mappings.codes":
                                       { "individual" : "false", 
                                         "servicetype" : "APPART" 
                                       } 
                     })

这将返回条目。但下面的查询不是:

db.myCollection.find({
                      "mappings.codes":
                                       {
                                         "servicetype" : "APPART" ,
                                         "individual" : "false"
                                       } 
                     })

如您所见,只有代码顺序不同。我该如何处理这个问题?

提前致谢

最佳答案

在您的集合中,mappings 是一个数组。因此您需要使用$elemMatch。试试这个:

db.myCollection.find({"mappings":{$elemMatch:{"test.codes":{"individual":"false","servicetype":"APPART"}}}}).pretty()

关于java - 查询 mongodb 的 map 类型字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25569128/

相关文章:

c++ - 如何在 MongoDB C++ 驱动程序中使用 DBClientBase 类插入文档?

xml - JAXB 2 spring-ws 2.0.3.RELEASE SOAP 服务教程链接/建议请求

java - spring 注解可以访问方法参数吗?

javascript - Mongoose:无法通过 ID 检索文档 - 错误 404

java - Tomcat错误: A child container failed during start

java - Spring 调度程序意外停止并重新启动

javascript - Mongoose 模式,设置关键变量

java - Instanceof - 从先前的 ArrayList 添加新对象到新的 ArrayList

java - 如何在WebView中加载新文件?

java - 如何在 LDAP 上下文上设置放松控制