$ pop 演算子は配列の最初または最後の要素を削除しますが、必ずしも正しい要素であるとは限りません。
特定の要素が必要な場合は、 $pull を使用できます。 定義された基準を持つアイテム:
model.registerCompany.findOneAndUpdate({companyKey:"a key"},
{$pull:{onlineEmployees:"John"}},
$pull
の場合、配列内の値が一意であることを確認する必要があります 「John」という名前に一致するすべての要素を削除します。
配列に同じ値が存在する場合は、$unset
を使用する必要があります および$
ターゲット要素の値をnull
に設定する位置演算子 (残念ながら、$ unsetは要素を削除しません)次に、$pull
を使用します null
の要素を削除します 価値。そのためには、有効な値がnull
にならないようにする必要があります 。その場合、コードは次のようになります。
model.registerCompany.findOneAndUpdate({companyKey:"a key", onlineEmployees:"John"},{ $unset: { "onlineEmployees.$" : '' } } )
model.registerCompany.findOneAndUpdate({companyKey:"a key"},{ $pull: { "onlineEmployees" : null } } )