Liam Staskawicz committed cd6b3c8

* format fields correctly for query - still needs testing

Comments (0)

Files changed (1)

     return (opts["admin"] == true) ? "admin.${}" : coll.fullName
+  private [Str:Int]? fieldsForQuery(Str[] fields)
+  {
+    if(fields.isEmpty) return null
+    m := Str:Int[:]
+    fields.each |val| { m[val] = 1 }
+    return m
+  }
   private Void doQuery(Int numToRetrieve)
     b := Buf() { endian = Endian.little }
     b.writeI4(numToRetrieve)                    // num to return
     Bson.write(b.out, selector)                 // query object
     if(opts.containsKey("fields"))              // optional fieldReturnSelector
-      Bson.write(b.out, opts["fields"])
+      Bson.write(b.out, fieldsForQuery(opts["fields"]))
     s := coll.db.connection.getSocket()
     reqID := coll.db.connection.sendMsg(s.out, b.flip, MongoOp.QUERY)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.