Hi all I use GeoServer 2.15 and MongoDB 3.6
I've created a collection with data from here <https://docs.geoserver.org/stable/en/user/data/app-schema/mongo-tutorial.html> (just two records), created 2dsphere index Then I created a layer from that collection and tried to request it by WMS with cql_filter in URL params. 1. when I use simple attributes (that are not multiple) in the filter all is fine (points are visible): - filter: "contract.mail" ILIKE '%@mail.com%' OR "name" ILIKE '%station%' - mongo log: { ... , filter: { }, projection: { geometry: 1, contact.mail: 1, name: 1 }, ... } <http://osgeo-org.1560.x6.nabble.com/file/t385081/stations-stations.png> 2. when I use attributes that are multiple in the filter then it DOES NOT work (there is no any point on received PNG): - filter: "measurements.name" ILIKE '%wind%' OR "measurements.unit" ILIKE '%c%' - mongo log: { ... , filter: { }, projection: {geometry: 1, measurements.unit: 1, measurements.name: 1}, ... } <http://osgeo-org.1560.x6.nabble.com/file/t385081/stations-stations_%281%29.png> 3. when I change OR to AND in previous filter then it's works fine: - filter: "measurements.name" ILIKE '%wind%' AND "measurements.unit" ILIKE '%c%' - mongo log: { ..., filter: { $and: [ { measurements.name: /^.*wind.*$/i }, { measurements.unit: /^.*p.*$/i } ] }, projection: { geometry: 1 }, ... } <http://osgeo-org.1560.x6.nabble.com/file/t385081/stations-stations_%282%29.png> So I concluded that GeoServer does AND operation by sending filter to mongoDB. And OR operation by itself requesting all records from collection. But with attributes that are multiple something goes wrong. I think it's a bug. If you have any sugestions please tell me. -- Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-Dev-f3819232.html _______________________________________________ Geoserver-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-devel
