3

我的文档中存储了一个数组:

    "properties" : [
            {
                    "createdate" : 1375981035,
                    "updated" : 1375981035
            },
            {
                    "accessdate" : 1375981035,
                    "updated" : 1375981035
            },
            {
                    "code" : "4ffa04fe06000000",
                    "updated" : 1375981038
            }
    ],

执行更新以取消设置属性“代码”: db.coll.update({'properties.code':'4ffa04fe06000000'},{'$unset':{'properties.$':1}});

我的结果是这样的:

    "properties" : [
            {
                    "createdate" : 1375981035,
                    "updated" : 1375981035
            },
            {
                    "accessdate" : 1375981035,
                    "updated" : 1375981035
            },
            null
    ],

但我希望它是这样的:

    "properties" : [
            {
                    "createdate" : 1375981035,
                    "updated" : 1375981035
            },
            {
                    "accessdate" : 1375981035,
                    "updated" : 1375981035
            }
    ],

如果没有生成的空键,有什么更好的取消设置方法?'$pull' 更好吗?

4

2 回答 2

3

要删除要使用 $pull 的数组成员,
请参阅:http ://docs.mongodb.org/manual/reference/operator/update/pull/

于 2014-05-20T23:22:37.260 回答
0

要删除您想要的数组成员,请使用此处提到的 $pull http://docs.mongodb.org/manual/reference/operator/update/pull/如果数组已经包含空值,则使用

db.collection..update({criteria },{$pull:{"arrays.1":null}});
于 2019-01-22T10:52:36.223 回答