nodejs mongodb 객체 ID에서 문자열로
노드j에서는 mongodb, mongoosej를 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.
})
왜요? 그럼 어떻게 _id를 문자열로 만들죠?
이것을 시험해 보세요.
user._id.toString()
MongoDB ObjectId는 12바이트의 UUID로 길이 24자의 HEX 문자열 표현으로 사용할 수 있습니다.에 표시할 문자열로 변환해야 합니다.console
사용.console.log
.
따라서 다음과 같이 해야 합니다.
console.log(user._id.toString());
밑줄을 빼고 다시 시도하십시오.
console.log(user.id)
또한 id에서 반환된 값은 이미 문자열입니다.
mongoj를 사용하고 있습니다.다음 예를 들어보겠습니다.
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.
}
})
이것을 시험해 보세요.
objectId.str;
의사를 참조해 주세요.
Mongoose를 사용하는 경우 ID를 16진수 문자열로 지정할 수 있는 유일한 방법은 다음과 같습니다.
object._id ? object._id.toHexString():object.toHexString();
오브젝트가 있기 때문입니다._id는 객체가 채워진 경우에만 존재하며, 채워지지 않은 객체는 ObjectId입니다.
mongoose를 사용하는 경우.
의 표현_id
통상, 형식(클라이언트측)입니다.
{ _id: { _bsontype: 'ObjectID', id: <Buffer 5a f1 8f 4b c7 17 0e 76 9a c0 97 aa> },
보시다시피 저 안에 완충기가 있어요변환하는 가장 쉬운 방법은 다음과 같습니다.<obj>.toString()
또는String(<obj>._id)
예를 들면
var mongoose = require('mongoose')
mongoose.connect("http://localhost/test")
var personSchema = new mongoose.Schema({ name: String })
var Person = mongoose.model("Person", personSchema)
var guy = new Person({ name: "someguy" })
Person.find().then((people) =>{
people.forEach(person => {
console.log(typeof person._id) //outputs object
typeof person._id == 'string'
? null
: sale._id = String(sale._id) // all _id s will be converted to strings
})
}).catch(err=>{ console.log("errored") })
function encodeToken(token){
//token must be a string .
token = typeof token == 'string' ? token : String(token)
}
User.findOne({name: 'elrrrrrrr'}, function(err, it) {
encodeToken(it._id)
})
mongoose에서 objectId는 객체(console.log(type of it._id))입니다.
Mongoose 5.4부터는 SchemaType Getters를 사용하여 ObjectId를 String으로 변환할 수 있습니다.
Mongoose 5.4의 신기능: Global SchemaType Configuration을 참조하십시오.
이와 같이 개체 ID 내의 속성에 액세스합니다.user._id.$oid
.
매우 간단한 사용String(user._id.$oid)
다음을 수행합니다.console.log(user._doc._id)
에 의해 반환된 결과find
는 배열입니다.
대신 다음을 시도해 보십시오.
console.log(user[0]["_id"]);
언급URL : https://stackoverflow.com/questions/13104690/nodejs-mongodb-object-id-to-string
'programing' 카테고리의 다른 글
Json allowget 오류 (0) | 2023.03.19 |
---|---|
Wordpress 연락처 양식 7 사용자 지정 쇼트 코드 (0) | 2023.03.19 |
wp_nav_menu에 커스텀 HTML을 추가하는 방법 (0) | 2023.03.19 |
PHP를 사용하여 바코드를 생성하고 동일한 페이지에 이미지로 표시하는 방법 (0) | 2023.03.19 |
AngularJS에서 csv 파일 내용을 읽는 방법은 무엇입니까? (0) | 2023.03.19 |