Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-40687

Positional projection ($) only considers first path component when comparing to query document

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.3
    • Affects Version/s: 4.0.9
    • Component/s: None
    • Minor Change
    • ALL
    • Query 2019-12-02, Query 2019-12-16
    • 0

      Using a non-matching subfield (e.g., query: fieldExists.something: 1 projection: fieldExists.fieldDoesntExist.$) with the $ projection operator does not return the Positional projection 'fieldExists.fieldDoesntExist.$' does not match the query document error.
       
      Given the document:

      {
      	"_id" : ObjectId("5cb8ab2f20926051ca9e2cd7"),
      	"AOE" : [
      		{
      			"areaOfExpertise" : "aoe1",
      			"subAOE" : []
      		},
      		{
      			"areaOfExpertise" : "aoe2",
      			"subAOE" : []
      		}
      	],
      	"poolName" : "newpool",
      	"__v" : 0
      }
      

      The {"AOE.doesntExist.$":1} projection is treated the same as the correct {"AOE.$":1} projection:

      > db.proj.find({ poolName: "newpool", "AOE.areaOfExpertise": "aoe1" },{"AOE.doesntExist.$":1}).pretty()
      {
      	"_id" : ObjectId("5cb8ab2f20926051ca9e2cd7"),
      	"AOE" : [
      		{
      			"areaOfExpertise" : "aoe1",
      			"subAOE" : []
      		}
      	]
      }
      > db.proj.find({ poolName: "newpool", "AOE.areaOfExpertise": "aoe1" },{"AOE.$":1}).pretty()
      {
      	"_id" : ObjectId("5cb8ab2f20926051ca9e2cd7"),
      	"AOE" : [
      		{
      			"areaOfExpertise" : "aoe1",
      			"subAOE" : []
      		}
      	]
      }
      

        1. bug1.png
          bug1.png
          33 kB
        2. mongo1.png
          mongo1.png
          21 kB
        3. sub2.png
          sub2.png
          17 kB

            Assignee:
            ian.boros@mongodb.com Ian Boros
            Reporter:
            piyushkumar96 Piyush Kumar
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: