CosmosDB хранимая процедура - PullRequest
0 голосов
/ 10 мая 2018

Я читаю документ из коллекции и храню 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)
                }

Здесь консоль.log (doc2) также не показывает удаленные элементы, которые я хочу.

1 Ответ

0 голосов
/ 10 мая 2018

doc1.abc[0] и doc2.abc[0] представляют один и тот же объект, они являются одной и той же ссылкой.См. this для получения дополнительной информации о том, что это означает.

Если вы хотите изменить два документа по отдельности, вам необходимо полностью разделить данные.

Это, вероятно,самый простой способ:

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

(Источник: Как скопировать объект JavaScript в новую переменную НЕ по ссылке? )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...