web-dev-qa-db-ja.com

JavaScriptでObjectID(Mongodb)を文字列に変換する

JavaScriptでObjectID(Mongodb)をStringに変換したい。 MongoDBからオブジェクトを取得するとき。オブジェクトが持っているように:タイムスタンプ、セカンド、インク、マシン。文字列に変換できません。

47
vhlen

これを試して:

objectId.str;

doc を参照してください。

69
anubiskong

ObjectId inを文字列に変換する実用的な例を次に示します

_> 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()のような他のさまざまな関数を試してみましたが、成功しませんでした。

20
Sammaye

シェル

ObjectId("507f191e810c19729de860ea").str

in js ノードのネイティブドライバーを使用

objectId.toHexString()

12
Karl Pokus

実際には、これを試すことができます:

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

ObjectIdオブジェクト+ Stringは、Stringオブジェクトに変換されます。

8
user1438797

誰かがMeteorjsで使用する場合、次を試すことができます:

サーバー内:ObjectId(507f191e810c19729de860ea)._str

テンプレート内:{{ collectionItem._id._str }}

OPがMongo 2.2以降を使用してObjectIdの16進文字列値を取得したい場合、valueOf()メソッドはオブジェクトの表現を16進文字列として返します。これは、strプロパティでも実現されます。

Anubiskongの投稿のリンクはすべての詳細を提供しますが、ここでの危険は古いバージョンから変更されたテクニックを使用することですtoString()

5
William Myers

これは動作します。mongodbオブジェクト:ObjectId(507f191e810c19729de860ea)があり、_idの文字列値を取得するには、単にObjectId(507f191e810c19729de860ea).valueOf();と言います。

3
ndoty

ToStringを使用:var stringId = objectId.toString()

最新のNode MongoDB Nativeドライバー(v3.0 +)で動作します:

http://mongodb.github.io/node-mongodb-native/3.0/

2
Vidar

$toString mongodbバージョンで導入された集約4.0ObjectIdを文字列に変換します

db.collection.aggregate([
  { "$project": {
    "_id": { "$toString": "$your_objectId_field" }
  }}
])
1
Ashh

これは本当に面白いことがわかりましたが、私にとってはうまくいきました:

    db.my_collection.find({}).forEach((Elm)=>{

    let value = new String(Elm.USERid);//gets the string version of the ObjectId which in turn changes the datatype to a string.

    let result = value.split("(")[1].split(")")[0].replace(/^"(.*)"$/, '$1');//this removes the objectid completely and the quote 
    delete Elm["USERid"]
    Elm.USERid = result
    db.my_collection.save(Elm)
    })
0
Hogan jerry

これを使用してください:_id.$oid

そして、ObjectId文字列を取得します。これにはオブジェクトが付属しています。

0
Sergio