0
私は、次のスキーマを持っている:マングースメソッドをネストすることは可能ですか?
var ItemSchema = new Schema({
name: String,
completed: Boolean,
priority: String,
dueDate: String
});
var ListSchema = new Schema({
name: String,
items: [ItemSchema]
});
私はItemSchema
のインスタンスに到達したいです。私は巣2つのマングースの方法がそうのように、それに到達することができます。
router.route('/lists/:list_id/items/:items_id')
.put(function(req, res) {
List.findById(req.params.list_id, function(err, list) {
if (err) {
res.send(err);
}
list.items.findByIdAndRemove(req.params.items_id, function(err, item) {
if (err) {
res.send(err);
}
console.log(item);
res.json(list);
});`
てみましたか? – adeneo
はい、動作しません。 – Amituuush
質問に答えるために、はい、それを入れ子にすることは可能です。しかし、あなたがしようとしていることは機能しません。それは、 'list.items'はObjectIDの配列です。それを削除したい場合は、標準の配列操作、スライス、スプライス、ポップ、その他のものをリストから削除する必要があります。次に、 'list'オブジェクトを新しい項目で更新する必要があります。 'List.findById'で' populate'を試みるかもしれませんが、 'items'を文書の配列にするとは思いません。オブジェクトに塗りつぶすだけだと思います。更新関数を得るために 'items'が文書の配列になる必要があります –