2017-03-24 3 views
2

ベータ版のSailsJS(v1.0.0-32)を試していますが、カスタムIDを設定する際にいくつか問題があります。モデルの設定config/models.jsSails v1.0:mongoでカスタムプライマリキーを使用中にエラーが発生しました

attributes: { 
    createdAt: { type: 'number', autoCreatedAt: true, }, 
    updatedAt: { type: 'number', autoUpdatedAt: true, }, 
    id: { type: 'string', columnName: '_id' }, 
} 

に挿入されるようにしようとする要素を

modelExample.js

module.exports = { 

    attributes: { 
    id:{ 
     type: 'string', 
     columnName: '_id' 
    }, 
    attr: { 
     type: 'number' 
    } 
    } 
} 

:あなたは私の現在の設定を見つけることができますベロー

{id:"600000", attr:40}

error作成することがしようとしている要素に含まれる属性「ID」を持つレコードを作成しようとしたとき、私は得る:

AdapterError: Unexpected error from database adapter: Invalid primary key value provided for `id`. Cannot interpret `600000` as a Mongo id. 
(Usually, this is the result of a bug in application logic.) 

はモンゴがidとして文字列600000が好きではありませんが、私はわからないようですもしかしたら、私はmongoのIDに関連する何かを誤解しているかもしれません。古いバージョンのセイルでは、idオーバーライドが簡単だったので、この問題は一度もありませんでした。

詳細については、帆、モンゴアダプタのバージョンは次のとおりです。"sails-mongo": "^1.0.0-5"

答えて

0

帆1.0にsails-mongoと非ObjectIDの主キーを使用するためには、あなたがたとえば、あなたのモデルにdontUseObjectIds: trueを設定する必要があります。

// api/models/User.js 
module.exports = { 
    dontUseObjectIds: true, 
    attributes: { 
    id: { type: 'number', columnName: '_id' }, // <-- still need to set `columnName`! 
    name: { type: 'string' }, 
    ...etc... 
    } 
} 

これはsails-mongo v1.0.0-7として実装されています。

関連する問題