我想在JavaScript中将ObjectID(Mongodb)转换为字符串。
当我从MongoDB中得到一个对象时,它看起来像是一个具有时间戳、秒数、增量和机器的对象。
我无法将其转换为字符串。
试试这个:
// mongo shell
objectId.str
// mongo client, JS, Node.js
objectId.toString()
请查看文档。
ObjectId()
具有以下属性和方法:
str
- 返回对象的十六进制字符串表示。
.toString()
是从@J.C.的评论中添加的。
objectId.toString()
可以。 - J.C.objectId.str
用于 mongo shell,objectId.toString()
用于 mongo 客户端。 - user7247147这是一个将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()
,但都没有成功。
您可以使用在mongodb 4.0版本中引入的聚合操作符$toString
,该操作符将ObjectId转换为字符串。
db.collection.aggregate([
{ "$project": {
"_id": { "$toString": "$your_objectId_field" }
}}
])
使用toString方法:
var stringId = objectId.toString()
适用于最新的Node MongoDB Native驱动程序(v3.0+):
在服务器端:ObjectId(507f191e810c19729de860ea)._str
。
在模板中:{{ collectionItem._id._str }}
。
> a['_id']
ObjectId("518cbb1389da79d3a25453f9")
> a['_id'] + ''
"518cbb1389da79d3a25453f9"
ObjectId对象 + 字符串会转换为字符串对象。
valueOf()
方法将以十六进制字符串形式返回对象的表示。这也可以通过str
属性实现。anubiskong帖子中的链接提供了所有细节,危险在于使用已从旧版本更改的技术,例如toString()
。const id = String(ObjectID)
这个方法可行,你有一个mongodb对象:ObjectId(507f191e810c19729de860ea)
,
要获取_id
的字符串值,只需输入:
ObjectId(507f191e810c19729de860ea).valueOf();
""+objectId
或者objectId.toString()
,其中objectId
是我认为能满足你需求的变量。 - Sammaye