找到$ id字段,且前面没有$ ref,这是无效的

时间:2018-10-21 12:14:53

标签: database mongodb

我的mongodb(3.4)中有此类文档:

{
    "_id" : ObjectId("588e7a5951fa0982213c8f72"),
    "content" : "This is example"
    "createdBy" : ObjectId("5867822e10031569325c87b4"),
    "title" : "Notifications",
    "community" : NumberLong(7),
    "updatedAt" : ISODate("2018-10-18T22:10:37.795Z"),
    "tags" : [ 
        null, 
        {
            "type" : "question",
            "$ref" : "tag",
            "$id" : ObjectId("588e7a5951fa0982213c8f73"),
            "$db" : "forum"
        }, 
        {
            "$id" : ObjectId("588e7a5951fa0982213c8f74"),
            "$db" : "forum",
            "type" : "question",
            "$ref" : "tag"
        }
    ],
    "status" : "opened",
    "pinned" : false
}

我想从null数组中删除tags,所以我尝试了以下查询:

db.getCollection('question').update(
    { _id : ObjectId("588e7a5951fa0982213c8f72") },
    { $pullAll: { tags: [null] } },
    { multi: true }
)

但是,我得到了这个错误:

  

找到的$ id字段前面没有$ ref,这是无效的。

[编辑]

我发现$id$reftags字段的第三条记录中顺序不对。因此,我可以使用更新查询来修复序列并删除null吗?

0 个答案:

没有答案