MongoDB插入数据后如何从返回的insertedId中获取ObjectId值?
解决方法
你可以通过ObjectId实例自带的两个方法直接获取到字符串格式的ID值,两种方法返回结果一致:
- 调用
toString()方法,直接将ObjectId实例转为24位十六进制的ID字符串 - 调用
toHexString()方法,是ObjectId内置专门获取十六进制ID字符串的方法
完整代码示例
db.get().collection("product").insertOne(product,(err,data)=>{ // 方法1:使用toString() const idStr = data.insertedId.toString() console.log(idStr) // 输出结果:615c620b5fccd83152f4ad2f // 方法2:使用toHexString() const idHex = data.insertedId.toHexString() console.log(idHex) // 输出结果和上述完全一致 })
注意事项
如果你尝试直接对data.insertedId执行JSON序列化,会得到{"$oid":"615c620b5fccd83152f4ad2f"}格式的结果,此时也可以通过data.insertedId.$oid拿到ID值,但更推荐使用上面两个官方提供的原生方法,兼容性和稳定性更高。
内容的提问来源于stack exchange,提问作者Shaheer Kp
相关产品推荐
相关产品推荐

