CouchDB";[通告];写入数组时

CouchDB";[通告];写入数组时,couchdb,cloudant,couchdb-futon,Couchdb,Cloudant,Couchdb Futon,在CouchDB中,我正在向一个数组写入数据,并不断得到消息“[Circular]”。我使用Node.js创建要这样编写的数据 假设我在CouchDB的同一文档中有两个电子邮件对象: unverifiedEmail = [{"address":"john@example.com","dateAdded":"1389215329484"}] verifiedEmail = [] 现在在Node.js中,我在编写之前会这样做 var oldData = readFromCouchDb(); var

在CouchDB中,我正在向一个数组写入数据,并不断得到消息“[Circular]”。我使用Node.js创建要这样编写的数据

假设我在CouchDB的同一文档中有两个电子邮件对象:

unverifiedEmail = [{"address":"john@example.com","dateAdded":"1389215329484"}]
verifiedEmail = []
现在在Node.js中,我在编写之前会这样做

var oldData = readFromCouchDb();
var newData = oldData;
newData.verifiedEmail.unshift(newData.unverifiedEmail[0]);
writeToCouchDb(newData);
当我在Futon中查看文档时,我看到:

unverifiedEmail = [{"address":"john@example.com","dateAdded":"1389215329484"}]
verifiedEmail = "[Circular]"

这是怎么回事?

我发现问题与设置Javascript对象彼此相等的方式的深度有关

为了解决这个问题,我使用以下代码来代替上面的取消移位:

newData.verifiedEmail.unshift(JSON.parse(JSON.stringify(newData.unverifiedEmail[0])));