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

Find on view with sort through mongos may incorrectly return empty result set

    • Fully Compatible
    • ALL
    • Query 2016-12-12

      A find() with a sort() on a mongos may return an empty result set:

      mongos> db.c.insert({x:1})
      WriteResult({ "nInserted" : 1 })
      mongos> db.c.find()
      { "_id" : ObjectId("583dc54dade9d2265ce2b196"), "x" : 1 }
      mongos> db.createView("cView", "c", [{$match : { x : {$gt : 0}}}])
      { "ok" : 1 }
      mongos> db.cView.find()
      { "_id" : ObjectId("583dc54dade9d2265ce2b196"), "x" : 1 }
      mongos> db.cView.find().sort({_id:1})
      

      There's a simple workaround, which is to use the aggregation pipeline:

      mongos> db.cView.aggregate([{ $sort: {_id:1}}])
      { "_id" : ObjectId("583dc54dade9d2265ce2b196"), "x" : 1 }
      

            Assignee:
            kyle.suarez@mongodb.com Kyle Suarez
            Reporter:
            kyle.suarez@mongodb.com Kyle Suarez
            Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

              Created:
              Updated:
              Resolved: