参照したマングースのドキュメントの例では、Numberを使用しています personSchema._idの場合 フィールド、およびObjectId 他の人のために。
どちらかを使用できることを示すためだけに、例でこれを行っていると思います。 _idを指定しない場合 スキーマでは、ObjectId デフォルトになります。
ここでは、すべてのレコードに_idがあります ObjectIdであるフィールド 、それでもあなたはそれらを数字のように扱っています。さらに、personIDのようなフィールド およびtaskID それらを定義する部分を省略しない限り、存在しません。
すべての_idに数字を使用したい場合 フィールドでは、スキーマでそれを定義する必要があります。
var newsSchema = new Schema({
_id: Number,
_creator: {type: ObjectId, ref: "Person"},
// ...
})
var personSchema = new Schema({
_id: Number,
// ...
})
次に、特定のIDでニュースアイテムを作成し、それを作成者に割り当てます。
var tony = new Person({_id: 0});
var newsItem = new NewsItem({_id: 0, creator: tony.id});
ただし、ここで注意すべきことは、ObjectId以外のものを使用する場合です。 _idとして フィールドでは、これらの値を自分で管理する責任を負っています。 ObjectIdは自動生成され、追加の管理は必要ありません。
編集:あなたがあなたの協会の両側にrefを保存していることにも気づきました。これは完全に有効であり、時々実行したい場合もありますが、preに自分で参照を保存する必要があることに注意してください。 フック。