0

我想取消设置我的收藏中的字段。此字段位于数组中。

var Stuff = new Schema(
 property = String,
_invitedAdmin = [String]
)

使用 mongooDB 我可以做到这一点:

Stuff.update({_invitedAdmin:email}, { $unset : {_invitedAdmin : email} }, callback);                                                             

我怎样才能对 MongooseJS 做同样的事情?

我尝试:

Stuff.find({property:isTtrue}, function(err, stuff) {
{
    for(i=0; i < stuff.length;i++)
    {
     stuff[i]._invitedAdmin = undifined; 
     stuff[i].save();
    }
});

但它不起作用:-(

4

2 回答 2

1

要从Stuff 集合中所有文档email的字段中删除所有实例:_invitedAdmin

Stuff.update(
    {_invitedAdmin: email}, 
    {$pull : {_invitedAdmin : email}}, 
    {multi: true}, 
    callback);

如果您不包含该{multi: true}选项,它只会影响第一个匹配的文档。

于 2012-09-17T13:31:02.353 回答
0

您可以通过将值设置为 undefined 来完全从文档中删除该属性,这将触发 $unset。

doc.path = undefined; doc.save()
于 2012-09-17T10:29:10.403 回答