79

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

4

21 に答える 21

117

これを試して:

objectId.str

ドキュメントを参照してください。

ObjectId()次の属性とメソッドがあります。

[...]

  • str- オブジェクトの 16 進文字列表現を返します。
于 2013-11-04T14:36:22.093 に答える
26

ObjectIdin を文字列に変換する実際の例を次に示します。

> 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()成功しなかったなど、他のさまざまな機能を試しました。

于 2013-05-10T09:22:41.577 に答える
22

シェル

ObjectId("507f191e810c19729de860ea").str

ノードのネイティブドライバーを使用するjsで

objectId.toHexString()

于 2016-06-22T16:12:38.133 に答える
9

toString を使用します。 var stringId = objectId.toString()

最新のノード MongoDB ネイティブ ドライバー (v3.0+) で動作します。

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

于 2018-06-26T20:10:24.113 に答える
8

誰かが Meteorjs を使用している場合は、次を試すことができます。

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

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

于 2016-12-09T23:16:48.690 に答える
8

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

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

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

于 2013-12-06T01:37:39.230 に答える
6

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

anubiskong の投稿のリンクにすべての詳細が記載されています。ここでの危険は、古いバージョンから変更された手法を使用することtoString()です。

于 2015-04-14T02:48:42.280 に答える
0

これを使用するだけです:_id.$oid

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

于 2016-12-21T11:30:20.830 に答える
0

文字列フォーマットを使用できます。

const stringId = `${objectId}`;

于 2020-07-03T13:19:00.217 に答える
0

あなたが使用することができますString

String(a['_id'])
于 2020-09-22T23:35:17.203 に答える
-1

MongoDB と一緒にMongooseを使用している場合、ObjectID の文字列値を取得する組み込みメソッドがあります。文字列を比較するためifに使用されるステートメントを実行するために、それを正常に使用しました。===

ドキュメントから:

Mongoose は、デフォルトで各スキーマに id 仮想ゲッターを割り当てます。これは、ドキュメントの _id フィールド キャストを文字列に返すか、ObjectIds の場合はその hexString を返します。id ゲッターをスキーマに追加したくない場合は、スキーマの構築時にこのオプションを渡すことで無効にすることができます。

于 2020-10-20T11:50:14.000 に答える