0

コレクションからサブドキュメントを削除する必要があります

tasks = item.tasks; // item is mongodb collection element, tasks is array of sub docs

tasks.forEach(function(task){
if (!task.finished)
     tasks.remove(task)
})

item.save()

その後、finished==trueのすべてのサブドキュメントが削除されない状況が発生します。

私が必要なことをする他のより正しい方法はありますか?

4

1 に答える 1

1

updateこれは、 with$pull演算子を使用してアトミックに行うことができます。

Items.update({_id: item._id}, {$pull: {tasks: {finished: true}}}, ...);

これもできるようですMongooseArray#pullが、そのドキュメントは非常に薄いので、使い方がわかりません。

于 2013-01-21T17:44:37.350 に答える