在JavaScript中将ObjectID(Mongodb)转换为String

vhl*_*len 48 javascript mongodb aggregation-framework

我想在JavaScript中将ObjectID(Mongodb)转换为String.当我从一个对象形式MongoDB.它就像一个对象有:timestamp,second,inc,machine.我无法转换为字符串.

小智 72

试试这个:

objectId.str;
Run Code Online (Sandbox Code Playgroud)

文档.

  • 这对我也不起作用.但是,`objectId.toString()`做了. (10认同)

Sam*_*aye 21

这是将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
Run Code Online (Sandbox Code Playgroud)

尝试了各种其他功能,如toHexString()没有成功.


Kar*_*kus 15

壳中

ObjectId("507f191e810c19729de860ea").str

在js中使用节点的本机驱动程序

objectId.toHexString()

  • 好的答案,指出了使用本机驱动程序的区别。 (2认同)

小智 8

实际上,你可以试试这个:

> a['_id']
ObjectId("518cbb1389da79d3a25453f9")
> a['_id'] + ''
"518cbb1389da79d3a25453f9"
Run Code Online (Sandbox Code Playgroud)

ObjectId对象+ String将转换为String对象.


Vid*_*dar 8

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

适用于最新的 Node MongoDB Native 驱动程序 (v3.0+):

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


Ash*_*shh 8

您可以使用$toStringmongodb 4.0版中引入的聚合,它将 ObjectId 转换为字符串

db.collection.aggregate([
  { "$project": {
    "_id": { "$toString": "$your_objectId_field" }
  }}
])
Run Code Online (Sandbox Code Playgroud)


Jon*_*ado 6

如果有人在Meteorjs中使用,可以尝试:

在服务器中:ObjectId(507f191e810c19729de860ea)._str.

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


小智 6

在 Javascript 中,String() 使这一切变得简单

const id = String(ObjectID)
Run Code Online (Sandbox Code Playgroud)


Wil*_*ers 5

假设OP想要获取ObjectId的十六进制字符串值,使用Mongo 2.2或更高版本,该valueOf()方法将对象的表示形式返回为十六进制字符串.这也是通过str财产实现的.

anubiskong的帖子上的链接提供了所有细节,这里的危险是使用从旧版本改变的技术,例如toString().


ndo*_*tie 5

这是可行的,你有 mongodb 对象:ObjectId(507f191e810c19729de860ea),要获取 的字符串值_id,你只需说

ObjectId(507f191e810c19729de860ea).valueOf();
Run Code Online (Sandbox Code Playgroud)