복붙노트

[MONGODB] ObjectId가 함수에 Node.js를 Mongoose.js 문자열

MONGODB

ObjectId가 함수에 Node.js를 Mongoose.js 문자열

몽구스를 사용하여 노드에 OBJECTID로 문자열을 설정하는 기능이 있습니까? 스키마를 지정 뭔가가 ObjectId가이지만,이 문자열에서 저장 될 때, 몽고는 여전히 문자열입니다 나를 알 수있다. 객체의 _id는, 예를 들면, OBJECTID ( "ㅋ")로 표시된다.

해결법

  1. ==============================

    1.당신과 같이 그것을 할 수 있습니다 :

    당신과 같이 그것을 할 수 있습니다 :

    var mongoose = require('mongoose');
    var id = mongoose.Types.ObjectId('4edd40c86762e0fb12000003');
    
  2. ==============================

    2.당신은 이런 식으로 작업을 수행 할 수 있습니다 :

    당신은 이런 식으로 작업을 수행 할 수 있습니다 :

    var mongoose = require('mongoose');
    var _id = mongoose.mongo.BSONPure.ObjectID.fromHexString("4eb6e7e7e9b7f4194e000001");
    

    편집 : 새로운 표준은 fromString보다는 fromHexString있다

  3. ==============================

    3.코멘트에서 판단, 당신이 찾고 있습니다 :

    코멘트에서 판단, 당신이 찾고 있습니다 :

    mongoose.mongo.BSONPure.ObjectID.isValid
    

    또는

    mongoose.Types.ObjectId.isValid
    
  4. ==============================

    4.

    var mongoose = require('mongoose');
    var _id = mongoose.mongo.ObjectId("4eb6e7e7e9b7f4194e000001");
    
  5. ==============================

    5.나는이 방법을 확인할 수 없습니다 (인정 하듯이 나는 오랫동안 검색하지 않았다)

    나는이 방법을 확인할 수 없습니다 (인정 하듯이 나는 오랫동안 검색하지 않았다)

    mongoose.mongo.BSONPure.ObjectID.fromHexString
    

    스키마는 속성 유형 ObjectId가 될 것으로 예상하는 경우, 변환은 적어도이 4.7.8의 경우 것으로 보인다 암시입니다.

    이하지만, 좀 더 플렉스주는 같은 것을 사용할 수 있습니다 :

    function toObjectId(ids) {
    
        if (ids.constructor === Array) {
            return ids.map(mongoose.Types.ObjectId);
        }
    
        return mongoose.Types.ObjectId(ids);
    }
    
  6. from https://stackoverflow.com/questions/6578178/node-js-mongoose-js-string-to-objectid-function by cc-by-sa and MIT license