-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Custom Mongo queries inexplicably return zero results after upgrading to 3.0.8.RELEASE or later (spring-boot dep mgmt: 2.3.10.RELEASE or later) #3658
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
thanks for reporting and the sample - we'll have a look. |
Looks like it is related to #3659. |
@mp911de that's interesting, and slightly surprises me, given the different affected versions (the ticket you refer is noted as a regression in versions after 3.1.9, while this ticket is a regression in versions after 3.0.7). Still, I look forward to hearing more and will track both issues. |
We had a change where we updated mapping of property paths pointing into collection and map-like structures that maps errornously There's quite a bit of a mismatch in the data model. We map queries against the domain model so trying to compare In any case, trying to query into a map should render the proper field name into the query. |
Thanks for your comment on 18th June, @mp911de. Any news on when this might be fixed? I'm a bit worried about getting stuck on an old version of |
You can fix the issue immediately within your code by aligning the data model to the actual representation in your MongoDB documents. Other than that, we need to revisit the entire map and array position translation that isn't planned short term. |
I've created a repo to demonstrate the issue, at https://github.com/oliverlockwood/mongodb-issue-demonstration, based on following the guidelines at https://spring.io/guides/gs/accessing-data-mongodb/.
That repo has a clear README but I'll highlight the main points here as well.
Customer
model class contains a map field, like:public Map<String, DataValue> additionalData;
(name, value)
tuples, viz:run()
method)spring-data-mongodb
version) is logged out as:Query: { "$and" : [{ "additionalData.name" : "a"}, { "additionalData.value" : "b"}]}, Fields: {}, Sort: {}
spring-boot
version2.3.9.RELEASE
(thereforespring-data-mongodb
version3.0.7.RELEASE
) an entry is found as expected by this queryspring-boot
version2.3.10.RELEASE
or higher (thereforespring-data-mongodb
version3.0.8.RELEASE
or higher) no results are founddb.getCollection('customer').find({ "$and" : [{ "additionalData.name" : "a"}, { "additionalData.value" : "b"}]})
finds an entry as expected
I therefore conclude this is a regression in
spring-data-mongodb
, but I can't for the life of me figure out why it stops returning results.I hope this in combination with the repo is enough context for you to investigate; please advise if you need me to provide any more information.
Many thanks!
The text was updated successfully, but these errors were encountered: