如果有新数据,请更新Mongo文档

时间:2018-03-10 08:00:35

标签: node.js mongodb

我从网站上获取一组类别并将它们添加到MongoDB中。

但是因为这个集合来自第三方所以我想要的是如果第三方更新类别列表它应该更新我的mongo集合。

如何在regionId的基础上更新特定文档,假设regionId是固定的,它们构成了mongo中serach的基础。

我想在mongo中实现这一点,即更新,即在文档中插入特定元素,如果没有新数据,那么文档应该保持不变

ORIGINAL

{ 
    "_id" : ObjectId("5aa38b33ff7a19a11ef11d3e"), 
    "regionId" : NumberInt(3526), 
    "regionName" : "So Cal", 
    "categories" : [
        "Other", 
        "Topicals", 
        "Tincture", 
        "Cannabis", 
        "Edibles", 
        "Extracts", 
        "Prerolled", 
        "Vape Cartridges"
    ]
}

假设我在regionId 3526中获得了新元素类别 种子 我想将其添加到同一文档中 的 UPDATDED

{ 
        "_id" : ObjectId("5aa38b33ff7a19a11ef11d3e"), 
        "regionId" : NumberInt(3526), 
        "regionName" : "So Cal", 
        "categories" : [
            "Seeds",
            "Other", 
            "Topicals", 
            "Tincture", 
            "Cannabis", 
            "Edibles", 
            "Extracts", 
            "Prerolled", 
            "Vape Cartridges"
        ]
    }

CODE

   function fetchPresentCategoryInMongo(n, resultObj, callback){
    db.collection(dbConfig.COLLECTION_NAME).update(
        {"region_id": parseInt(resultObj.categoryObj.regionId)}, 
        { $addToSet : { 'categories' : resultObj.categoryObj.categories }},{ upsert: true },
     function (error, query_result) {
        console.log(error, query_result.result, "======find ===================");
        if (error) {
            return callback(error, null);
        }
        else {
            return callback(null, query_result);
        }
    });
}

0 个答案:

没有答案