mongodbに_id
についての概念的な質問があります。mongodb mongoose nodejs express4なぜオブジェクト配列フィールドに_idを自動的に挿入するのですか?
ドキュメントにキーフィールドを設定しないとmongodbが自動的に_id
フィールドを挿入することを理解しています。私の場合、オブジェクトアレイとしてフィールドを定義しましたが、なぜオブジェクトが常に_id
このフィールドの配列で指定します。
誰かが私にそれを明確にすることができれば感謝します。
マングースモデルスキームの定義:
module.exports = mongoose.model("Application", {
Name: String,
Description: String,
Dependency: [
{
App_id: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Application'
},
Priority: Number
}
]
});
これは、更新操作で、要求データがある:
{ _id: '571953e33f33c919d03381b5',
Name: 'A Test Utility (cmd)',
Description: 'A Test Utility (cmd)'
Dependency:
[ { App_id: '571953e33f33c919d03381b6', Priority: true },
{ App_id: '571953e33f33c919d03383da', Priority: 0 } ]
}
私は
var id = req.body._id;
Application.findOneAndUpdate({ _id: id }, req.body, function (err, app) {
if (err)
res.send(err);
res.json(app);
});
に更新し、それを更新するには、このコードを使用しています成功しました。しかし、mongodbの文書は:
です{
"_id" : ObjectId("571953e33f33c919d03381b5"),
"Name" : "A Test Utility (cmd)",
"Description" : "A Test Utility (cmd)",
"Dependency" : [
{
"Priority" : 1,
"App_id" : ObjectId("571953e33f33c919d03381b6"),
"_id" : ObjectId("571a7f552985372426509acb")
},
{
"Priority" : 0,
"App_id" : ObjectId("571953e33f33c919d03383da"),
"_id" : ObjectId("571a7f552985372426509aca")
}
]
}
_id
がどのように「依存関係」の配列に含まれているのか分かりません。
ありがとうございました。
感謝せずに挿入するために、あなたの依存関係の配列スキーマの
{_id:false}
を使用する必要 –