MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB kann Abfrage nicht analysieren (2dsphere):zwei Bedingungen

Dies liegt an der Abfragesprache und daran, wie sie Objekte analysiert. Das Objekt, das Sie verwenden möchten, sieht folgendermaßen aus:

{ key: { query1, query2 }}

Wobei query1 ist $geoIntersects und query2 ist $not was einfach keine gültige Struktur ist, Sie können beide mit einem $und Abfrage wie folgt:

{
    $and: [
        {
            "footprint": {
                "$geoIntersects": {
                    "$geometry": {
                        "type": "Polygon",
                        "coordinates": [
                            [
                                [
                                    41.62109375000001,
                                    38.087716380862716
                                ],
                                [
                                    41.870727539062514,
                                    37.998201197578084
                                ],
                                [
                                    41.72393798828124,
                                    38.01268326428104
                                ],
                                [
                                    41.62109375000001,
                                    38.087716380862716
                                ]
                            ]
                        ]
                    }
                }
            }
        },
        {
            footprint: {
                "$not": {
                    "$geoWithin": {
                        "$geometry": {
                            "type": "Polygon",
                            "coordinates": [
                                [
                                    [
                                        41.62109375000001,
                                        38.087716380862716
                                    ],
                                    [
                                        41.870727539062514,
                                        37.998201197578084
                                    ],
                                    [
                                        41.72393798828124,
                                        38.01268326428104
                                    ],
                                    [
                                        41.62109375000001,
                                        38.087716380862716
                                    ]
                                ]
                            ]
                        }
                    }
                }
            }
        }
    ]
}