CosmosDB存储过程

时间:2018-05-10 14:44:40

标签: azure-cosmosdb

我正在从收集中读取文档并存储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 :(得分: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?

相关问题