MongoDb从数组中删除对象元素

时间:2014-12-22 16:50:30

标签: mongodb meteor

我删除了数组中元素的内容但是如何完全删除它以使索引位置消失。现在,它所处的指数位置的值为null

enter image description here

如何完全删除这些空索引,因为我的html遍历数组,因此仍在处理具有null值的索引位置。这是我目前的更新方法。我打算彻底删除该元素。我通过匹配对象id来查询对象。

点击事件:docId = this.docId

Meteor.users.update({_id: this.userId, 'profile.experiences.docId': docId}, {$unset: {'profile.experiences.$': docId}});

在方法中创建对象如下:

var expDoc = {
        contents: ' ',
        rank: ' ',
        docId: new Mongo.ObjectID()
    };
    Meteor.users.update({_id:this.userId}, {$addToSet: {'profile.experiences': expDoc}});

1 个答案:

答案 0 :(得分:3)

您应该使用$pull代替$unset

您的更新查询应如下所示:

Meteor.users.update({_id: this.userId}, {$pull: {'profile.experiences': {docId: docId}}});

$pull会搜索给定的数组,因此您无需搜索与_id {{1}相匹配的文档 - 你只需找到profile.experiences.docId