2013-05-10 60 views
28

我想在Object中將ObjectID(Mongodb)轉換爲String。 當我得到一個對象形式的MongoDB。它像一個對象有:時間戳,秒,公司,機器。 我無法轉換爲字符串。將ObjectID(Mongodb)轉換爲JavaScript中的字符串

+1

' 「」 + objectId'或'objectId.toString()''藉此爲objectId'我相信會做什麼你想找的變量。 – Sammaye 2013-05-10 09:00:05

+1

從MongoDB加載的ObjectID是一個對象。如果你在Javascript中使用toString()函數,它會返回[Object,Object]。 – vhlen 2013-05-10 09:13:31

+0

奇怪的是,這些功能應該實施,我相信這是固定的 – Sammaye 2013-05-10 09:15:34

回答

13

這裏是轉換ObjectId爲字符串

> a=db.dfgfdgdfg.findOne() 
{ "_id" : ObjectId("518cbb1389da79d3a25453f9"), "d" : 1 } 
> a['_id'] 
ObjectId("518cbb1389da79d3a25453f9") 
> a['_id'].toString // This line shows you what the prototype does 
function() { 
    return "ObjectId(" + tojson(this.str) + ")"; 
} 
> a['_id'].str // Access the property directly 
518cbb1389da79d3a25453f9 
> a['_id'].toString() 
ObjectId("518cbb1389da79d3a25453f9") // Shows the object syntax in string form 
> ""+a['_id'] 
518cbb1389da79d3a25453f9 // Gives the hex string 

也嘗試像toHexString()沒有成功的各種其他功能的工作示例。

+0

downvote的原因是什麼? – Sammaye 2014-05-23 14:07:21

+1

.toHexString()爲我感謝Sammaye! http://mongodb.github.io/node-mongodb-native/api-bson-generated/objectid.html – 2014-12-29 03:16:15

38

試試這個:

objectId.str; 

看到該文檔: http://docs.mongodb.org/manual/reference/object-id/

+1

這應該被標記爲正確的答案:) – 2016-08-25 15:57:05

+0

我不明白爲什麼,這不是爲我工作 當我做一個console.log,我看到objectId作爲控制檯上的一個對象 – roz 2017-03-18 07:06:31

+1

這也不適用於我。但是,'objectId.toString()'做了。 – 2017-05-05 15:48:30

7

Acturally,你可以試試這個:

> a['_id'] 
ObjectId("518cbb1389da79d3a25453f9") 
> a['_id'] + '' 
"518cbb1389da79d3a25453f9" 

的ObjectId對象+字符串轉換成String對象。

4

假設OP想要獲取ObjectId的十六進制字符串值,使用Mongo 2.2或更高版本,valueOf()方法返回對象的表示形式爲十六進制字符串。這也可以通過str屬性來實現。

anubiskong的帖子上的鏈接給出了所有的細節,這裏的危險是使用一種技術已經從舊版本, toString()

0

這個工程,你必須MongoDB的對象:物件(507f191e810c19729de860ea), 得到_id的字符串值,你只是說ObjectId(507f191e810c19729de860ea).valueOf();

+0

請改善您的回答 – 2016-08-08 20:21:11

+0

字符串被包裹在ObjectId中,所以要使用我剛剛提供的答案獲得包裝值@ Ivan Barayev – ndoty 2016-08-10 20:53:16

2

如果有人在Meteorjs使用,可以試試:

在服務器:ObjectId(507f191e810c19729de860ea)._str

模板中:{{ collectionItem._id._str }}

0

只要使用此:_id.$oid

,你會得到的ObjectId字符串。這與對象來。

+0

這對我來說不起作用 – 2017-03-25 11:04:25

+0

您可以看到在[嚴格的MongoDB擴展JSON](https: //docs.mongodb.com/manual/reference/mongodb-extended-json/#oid)。 – Sergio 2018-01-15 22:49:14

-1

使用這種簡單的技巧,your-object.$id

我得到蒙戈ID數組,這裏是我做的。

的jQuery:

... 
success: function (res) { 
    console.log('without json res',res); 
    //without json res {"success":true,"message":" Record updated.","content":[{"$id":"58f47254b06b24004338ffba"},{"$id":"58f47254b06b24004338ffbb"}],"dbResponse":"ok"} 

var obj = $.parseJSON(res); 

if(obj.content !==null){ 
    $.each(obj.content, function(i,v){ 
     console.log('Id==>', v.$id); 
    }); 
} 

... 
相關問題