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

Aggregation pipeline cannot process system.profile doc fields with $ prefixes

    XMLWordPrintable

    Details

      Description

      Due to strict FieldPath validation, aggregation pipelines cannot process fields that start with a $ character (commonly found in the system.profile collection).

      Steps to reproduce (copied here so code formatting works):

      db.system.profile.drop();
      db.setProfilingLevel(2);
      db.foo.update({},{$set:{x:1}})
      db.setProfilingLevel(0);
      db.system.profile.aggregate([
        { "$match" : {"op" : "update"}},
        { "$project" : {"set" : "$updateobj.$set"}}
      ]);

      Exception:

        "errmsg" : "exception: FieldPath field names may not start with '$'.",
        "code" : 16410,
        "ok" : 0

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              backlog-server-query Backlog - Query Team
              Reporter:
              jmikola Jeremy Mikola
              Participants:
              Votes:
              3 Vote for this issue
              Watchers:
              13 Start watching this issue

                Dates

                Created:
                Updated: