2011-10-20 12 views
0

私は多くのマーカーが埋め込まれたCoordinateモデルをユーザーモデルに持っています。どのように_idsなしで属性を抽出するので、各lngとlatだけの出力が表示されますか?モンゴイドで選択された属性の投影法は?

構造:

{ "_id" : ObjectId("4e9f418f1e7bf20fbc000009"), 
    "name" : "test", 
    "coordinates" : [ 
    { "lng" : 16.86783310009764, 
     "lat" : 52.38353842845282, 
     "_id" : ObjectId("4e9f418f1e7bf20fbc00000a") }, 
    { "lng" : 16.85787674023436, 
     "lat" : 52.40972501601293, 
     "_id" : ObjectId("4e9f418f1e7bf20fbc00000b") }, 
    { "lng" : 16.92276474072264, 
     "lat" : 52.40071858320756, 
     "_id" : ObjectId("4e9f418f1e7bf20fbc00000c") }, 
    { "lng" : 16.90182205273436, 
     "lat" : 52.38270020105396, 
     "_id" : ObjectId("4e9f418f1e7bf20fbc00000d") }, 
    { "lng" : 16.96705337597655, 
     "lat" : 52.410661698108, 
     "_id" : ObjectId("4e9f418f1e7bf20fbc00000e") }, 
    { "lng" : 16.89495559765624, 
     "lat" : 52.42773236584494, 
     "_id" : ObjectId("4e9f418f1e7bf20fbc00000f") } ] } 

例えば

= debug @user.coordinates.to_json 

ができます:

--- ! '[{"_id":"4e9f418f1e7bf20fbc00000a","lat":52.383538428452816,"lng":16.86783310009764},{"_id":"4e9f418f1e7bf20fbc00000b","lat":52.40972501601293,"lng":16.85787674023436},{"_id":"4e9f418f1e7bf20fbc00000c","lat":52.40071858320756,"lng":16.92276474072264},{"_id":"4e9f418f1e7bf20fbc00000d","lat":52.382700201053964,"lng":16.90182205273436},{"_id":"4e9f418f1e7bf20fbc00000e","lat":52.410661698108,"lng":16.967053375976548},{"_id":"4e9f418f1e7bf20fbc00000f","lat":52.42773236584494,"lng":16.894955597656235}]' 

が期待:

--- ! '[{"lat":52.383538428452816,"lng":16.86783310009764},{"lat":52.40972501601293,"lng":16.85787674023436},{"lat":52.40071858320756,"lng":16.92276474072264},{"lat":52.382700201053964,"lng":16.90182205273436},{"lat":52.410661698108,"lng":16.967053375976548},{"lat":52.42773236584494,"lng":16.894955597656235}]' 

答えて

2

受け入れ答えは、データを返すexcept

@user.coordinates.to_json(:except => '_id') 
+0

とても簡単です:)ありがとうございました! – leon

0

使用してみてくださいあなたは望みました。私はmongoidクエリに対してwithoutを使用することをお勧めします。実際にはDBからデータをフェッチしない方が理想的です。

@user.coordinates.without('_id').to_json(:except => '_id') 
関連する問題