首页 文章

Mongo更新特定的子目录

提问于
浏览
0

我有以下mongo条目:

et = {
languages: [{
    code:  String,
    title: String,
    tools: [{
         description: String,
         mds: [ObjectId]
    }],
}]
//some more stuff
}

我现在需要更新此对象并向mds数组添加新的ObjectId . 我需要通过代码元素指定语言元素,通过description参数指定工具条目 .

到目前为止,我想出了以下更新方法,我可以使用它更新正确语言条目的一些元素:

ETs.find({
        '_id':mdAttributes.etID,
        'languages':{'$elemMatch':{'code':mdAttributes.language}}
    },{
        '$set':{
            'languages.$.title':'update2.jpg'
         }
    });

但是我不知道如何为正确的工具添加查询 .

所以我的设置应该是这样的:

ETs.find({
        '_id':mdAttributes.etID,
        'languages':{'$elemMatch':{'code':mdAttributes.language}}
    },{
        '$set':{
            'languages.$.tools.$.mds': ["newId"]
         }
    });

有没有办法在mongo中实现这一目标?

1 回答

  • 0

    简短的回答,没有 . 位置运算符当前不使用嵌套数组(https://jira.mongodb.org/browse/server-831) .

    尽管如此,您仍然可以通过设置整个工具数组条目来实现(就像您在第一个示例中所做的那样,但是对于工具数组而不是 Headers 字段) .

相关问题