2016-11-05 79 views
0

我遇到stringify _id問題。如何將_id作爲ObjectId字符串返回而不循環整個集合?

mongo.db.some_collection.find()查詢集合後,我得到了類似如下:

[{ 
    "_id": 
     { 
      "$oid": "581c0967e14c8b2118a31758" 
     }, 
    "name": "something" 
}, 
{ 
    "_id": 
     { 
      "$oid": "581c50aae14c8b214a3d2231" 
     }, 
    "name": "something else" 
}] 

我想API響應是簡單的東西,如下,使事情前端開發者更容易。他們不想做類似item._id.$oid的事情來獲取實際的ID。

[{ 
    "_id": "581c0967e14c8b2118a31758", 
    "name": "something" 
}, 
{ 
    "_id": "581c50aae14c8b214a3d2231", 
    "name": "something else" 
}] 

我不想循環所有的結果,並操縱每個項目,以得到我想要的。有沒有一種方法(一個函數?)轉換_id沒有循環?

我找到了答案here,但建議是在插入時操作_id。插入時我其實不介意。

+0

得到結果後,試試這個,變種V = JSON.stringifi(結果); JSON.parsr(v) –

+0

@Parshuram是不是JSON.stringify()一個JS方法?我正在使用python。另外,重點是,我不想循環結果。我想把_id作爲字符串。 – Levblanc

回答

1

您可以使用該項目階段的聚集pipeine重塑領域,將返回預期的輸出:

db.test.aggregate([ 
    { 
     $project: 
     { 
      name: 1, 
      _id: '$_id.oid' 
     } 
    } 
]) 
+0

謝謝。這似乎是要走的路。但是集合的'_id'字段看起來像:''_id「:ObjectId(」581c0967e14c8b2118a31758「)'('_id。$ oid'是我在jsonify之後得到的最終結果)。我無法弄清楚這種方法來隱藏此ObjectId字符串的投影規範。需要幫助。 – Levblanc

+0

什麼是你的mongoDB版本? –

+0

@Parshuram v3.2.9 – Levblanc

相關問題