具有多级查询的“ arrayFilters”

时间:2019-04-17 17:39:25

标签: node.js mongodb mongoose

我有以下文件:

{
    "_id": "5cb73f6430d5482becedf21d",
    "terms": [{
        "term": "user",
        "translations": [{
            "history": [],
            "language": "pt",
            "target": "Usuário"
        }]
    }]
}

我正在尝试在term.translations.history下添加子文档,并按术语和语言字段进行过滤。我正在尝试以下更新命令:

let history = {
    action: 'CREATE',
    target: 'Some data....'
};

db.updateOne({
    '_id': id
}, {
    '$push': {
        'terms.$[h].translations.$[i].history': history
    }
}, {
    'arrayFilters': [{
            'h.term': 'user'
        },
        {
            'i.language': 'pt'
        }
    ]
});

但是,当我尝试使用回调函数显示原始文档时,我没有设法更新文档:{ ok: 0, n: 0, nModified: 0 }

有什么想法我做错了吗?

谢谢!

0 个答案:

没有答案