首页 文章

CosmosDB存储过程

提问于
浏览
0

我正在从集合中读取文档并存储2个不同的变量 . 但每当我从JSON中删除任何键时,它都会影响第一个变量结果 .

我想保持他们两个独立,以便改变一个不会反映其他 .

var query =  'SELECT * FROM c where c.id = "XYZ" 

var accept = collection.queryDocuments(collection.getSelfLink(), filterQuery,   
            function (err, documents, responseOptions) 
            {
                if (err) throw new Error("Error" + err.message);  

                if (documents.length != 1) 
                    throw "Document Not Exist"; 
                else
                {
                    var doc1 = new Object;
                    var doc2 = new Object;

                    doc1 =  documents[0];
                    doc2 =  documents[0];
                    var i = doc1.abc[0].pqr;

                    for(x = 0; x < doc1.abc[0].pqr.length; x++)
                    {
                        delete doc1.abc[0].pqr[x];
                    }
                    console.log(doc2)
                }

这里console.log(doc2)也没有显示我想要的已删除元素 .

1 回答

  • 0

    doc1.abc[0]doc2.abc[0] 表示相同的对象,它们是相同的引用 . 有关这意味着什么的更多信息,请参见this .

    如果要依赖修改这两个文档,则需要完全分离数据 .

    这可能是最简单的方法:

    var doc1 =  documents[0];
     var doc2 = JSON.parse(JSON.stringify(doc1));
    

    (来源:How to copy JavaScript object to new variable NOT by reference?

相关问题