Swa*_*rma 43 mongoose mongodb node.js
IN nodejs,mongodb,mongoosejs as orm
我这样做
我有一个模型,用户
User.findOne({username:'someusername'}).exec(function(err,user){
console.log(user) //this gives full object with something like {_id:234234dfdfg,username:'someusername'}
//but
console.log(user._id) //give undefined.
})
Run Code Online (Sandbox Code Playgroud)
为什么?那么如何让_id变为字符串呢?
Ion*_*zău 75
试试这个:
user._id.toString()
Run Code Online (Sandbox Code Playgroud)
甲MongoDB中的ObjectId是一个12字节的UUID可以用作与长度为24个字符一个HEX字符串表示.您需要将其转换为字符串以在console
使用中显示它console.log
.
所以,你必须这样做:
console.log(user._id.toString());
Run Code Online (Sandbox Code Playgroud)
小智 17
我正在使用mongojs,我有这个例子:
db.users.findOne({'_id': db.ObjectId(user_id) }, function(err, user) {
if(err == null && user != null){
user._id.toHexString(); // I convert the objectId Using toHexString function.
}
})
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助.
Ake*_*ltZ 16
取出下划线并再试一次:
console.log(user.id)
Run Code Online (Sandbox Code Playgroud)
此外,从id返回的值已经是一个字符串,您可以在此处看到.
我这样使用它并且它有效.
干杯
如果您使用的是Mongoose,那么确保将id作为十六进制字符串的唯一方法似乎是:
object._id ? object._id.toHexString():object.toHexString();
Run Code Online (Sandbox Code Playgroud)
这是因为object._id仅在填充对象时存在,否则对象是ObjectId
归档时间: |
|
查看次数: |
77095 次 |
最近记录: |