10

Is there a way to get mongodb query results with only the values and not the field names. My query gives me the following result:

{
           "t_number" : 2508
},
{
           "t_number" : 2560
},
{
           "t_number" : 2599
}

Ideally I want the query result to be [2508,2560,2599]. Or if that is not possible, is it possible to get the query result as [{2508},{2560},{2599}]. I know that I can iterate over the result and change the format in my programming language. I am looking for a way to get that from mongodb and save some work.

mohamedrias
  • 18,326
  • 2
  • 38
  • 47
pawinder gupta
  • 1,225
  • 16
  • 35

2 Answers2

11

No, you can't do it directly.

But this one liner could help you:

db.collection.find({},{_id:0, t_number:1}).toArray().map(function(ele) {return ele.t_number} );
mohamedrias
  • 18,326
  • 2
  • 38
  • 47
  • 1
    does this result in [2508,2560,2599] being sent over the wire (as opposed to extracted application side)? – Edward Dec 15 '21 at 14:01
0

I think that is not possible because mongodb returns only JSON Objects and according to http://www.json.org a JSON-Object is surrounded by curly brackets { } and (if it is not empty) a value is allways indecated by a String (and seperated by a :).

Simulant
  • 19,190
  • 8
  • 63
  • 98
  • MongoDB returns BSON objects – Sammaye May 22 '14 at 15:16
  • Wenn that's true. BSON is a binary representation of JSON so the rules of defining a valid object are the same. – Simulant May 22 '14 at 15:21
  • An array is an object and it is also a data type in BSON, in theory MongoDB could return a transformed result with only the array but such funcitonality does not yet exist – Sammaye May 22 '14 at 15:23