diff --git a/lib/em-mongo/server_response.rb b/lib/em-mongo/server_response.rb index aa8c8cf..6ad7f89 100644 --- a/lib/em-mongo/server_response.rb +++ b/lib/em-mongo/server_response.rb @@ -21,10 +21,14 @@ def initialize(buffer, connection) @number_returned = buffer.get_int # Documents - @docs = (1..number_returned).map do + pos=buffer.position + @docs = (1..@number_returned).map do size= @connection.peek_size(buffer) - buf = buffer.get(size) - BSON::BSON_CODER.deserialize(buf) + + doc=CBson.deserialize(buffer.to_s[pos,size]) + pos+=size + buffer.position=pos + doc end end