[SERVER-59] Doing a query on a list inside of an object inside of a list does not work. Created: 20/May/09  Updated: 12/Jul/16  Resolved: 21/May/09

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: 0.9.3
Fix Version/s: 0.9.3

Type: New Feature Priority: Major - P3
Reporter: jeff jenkins Assignee: Aaron Staple
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Participants:

 Description   

> db.visits.find({ 'end' :

{'$gt' : d}

,}).limit(1)
{"_id" : "b4dd8c36e67c6c709f7d5def" , "pages" : [

{ "tests" : ["ShowInternalAdsSearch"] }

] , }
> db.visits.find({ 'end' :

{'$gt' : d}

, 'pages.tests' : 'ShowInternalAdsSearch'})
>

This doesn't work, but I think it should.



 Comments   
Comment by Aaron Staple [ 21/May/09 ]

fixed 9d44b312f0ef018fcea8abbb639a776b24a9d066

Comment by Aaron Staple [ 21/May/09 ]

ok, going to change the implementation

Comment by Aaron Staple [ 21/May/09 ]

The matcher is actually designed to work this way (Eliot I believe we discussed ~2 months ago on aim).

The idea is that we only do one expansion of an array. Something like

{ a: [ [ 1 ] ] }

will be matched by

{ a: [1] }

but not

{a:1}

. Similarly, in you example, the object would be matched by

{ 'pages.tests': ["ShowInternalAdsSearch"]}

but not

{'pages.tests':"ShowInternalAdsSearch"}

.

Generated at Thu Feb 08 02:52:55 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.