首页 > 解决方案 > 我在 MongoDB 中有一系列文档,例如

问题描述

    "references" : [ 
        {
            "_id" : ObjectId("5f9aab1d8e475489270ebe37"),
            "languageCode" : "en",
            "languageId" : 1,
            "productId" : ObjectId("5f9aab1c8e475489270ebe2d")
        }
    ],
    "isDeleted" : 0,
    "productId" : 19

我的引用键中有一组文档。现在我想使用 mongoose 在更新查询中将文档推送到这个文档数组中。这是我的查询

Models.update({productId : 19}, {references : {$addToSet :{
                    languageCode : "ar",
                    languageId : 2,
                    productId : ObjectId("5f9aab1c8e475489270ebe2f")
                } } })

现在,它不是在现有数组中添加此文档


    "isDeleted" : 0,
    "productId" : 19,
    "references" : [ 
        {
            "_id" : ObjectId("5f9ab8ee72273a8cb4bf5865")
        }
    ],

谁能告诉我我做错了什么?

标签: mongodbmongoose-schema

解决方案


存在语法错误。


.update({productId : 19}, {$addToSet :{
    references:{
                    languageCode : "ar",
                    languageId : 2,
                    productId : ObjectId("5f9aab1c8e475489270ebe2f")
                } } })

您必须先使用运算符而不是字段名称。

addToSet注意和的切换顺序field references


推荐阅读