Mongo过滤查询嵌套有多个和

问题描述 投票:0回答:1

以下是我的查询与我的文档完全匹配,但仍然没有得到输出。不知道为什么。以下也是文档。

db.getCollection("analytics").find(
    { 
        "$and" : [
            { 
                "archive" : false
            }, 
            { 
                "platform" : "WEB"
            }, 
            { 
                "vendorId" : "3c7adbfe-14d7-4b26-9134-7e05d56573cc"
            }, 
            { 
                "createdAt" : { 
                    "$gte" : 1578268800000.0
                }
            }, 
            { 
                "createdAt" : { 
                    "$lte" : 1580860800000.0
                }
            }, 
            { 
                "$and" : [
                    { 
                        "data.mobile" : "123"
                    }, 
                    { 
                        "page" : "Loan Application"
                    }, 
                    { 
                        "event" : "click"
                    }
                ]
            }, 
            { 
                "$and" : [
                    { 
                        "data.aadharNumber" : "123"
                    }, 
                    { 
                        "page" : "Personal Information"
                    }, 
                    { 
                        "event" : "click"
                    }
                ]
            }, 
            { 
                "$and" : [
                    { 
                        "data.totalExp" : "5"
                    }, 
                    { 
                        "page" : "Professional Information"
                    }, 
                    { 
                        "event" : "click"
                    }
                ]
            }
        ]
    }
);

文档:

[
  {
    "page": "Loan Application",
    "event": "click",
    "loggedIn": true,
    "vendorId": "3c7adbfe-14d7-4b26-9134-7e05d56573cc",
    "data": {
      "first": "Praveen",
      "mobile": "1234"
    },
    "platform": "WEB"
  },
  {
    "page": "Personal Information",
    "event": "click",
    "loggedIn": true,
    "vendorId": "3c7adbfe-14d7-4b26-9134-7e05d56573cc",
    "data": {
      "panNumber": "123",
      "aadharNumber": "123"
    },
    "platform": "WEB"
  },
  {
    "page": "Professional Information",
    "event": "click",
    "loggedIn": true,
    "vendorId": "3c7adbfe-14d7-4b26-9134-7e05d56573cc",
    "data": {
      "totalExp": "5"
    },
    "platform": "WEB"
  }
]
mongodb mongodb-query morphia
1个回答
0
投票

查询中存在很多问题,您可以在下面的查询中尝试返回所有文档:

db.getCollection("analytics").find({
  $expr: {
    $and: [
      {
        "platform": "WEB",
        "vendorId": "3c7adbfe-14d7-4b26-9134-7e05d56573cc"
      },
      {
        $or: [
          {
            "$and": [
              {
                "data": {
                  "mobile": "123"
                }
              },
              {
                "page": "Loan Application"
              },
              {
                "event": "click"
              }
            ]
          },
          {
            "$and": [
              {
                "data": {
                  "aadharNumber": "123"
                }
              },
              {
                "page": "Personal Information"
              },
              {
                "event": "click"
              }
            ]
          },
          {
            "$and": [
              {
                "data": {
                  "totalExp": "5"
                }
              },
              {
                "page": "Professional Information"
              },
              {
                "event": "click"
              }
            ]
          }
        ]
      }
    ]
  }
})

测试: MongoDB-Playground

© www.soinside.com 2019 - 2024. All rights reserved.