2012-06-17 36 views
2

“从调用populate返回的文档变成功能齐全,可移除,可保存的文档。不要将它们与嵌入式文档混淆。调用remove方法时要小心,因为您将删除它来自数据库,而不仅仅是阵列。“Mongoose.js Doc Refs - 如何安全地删除

我发现有点可怕 - 你如何在不删除所述文档的情况下安全地取消对猫鼬文档中文档的引用?

+0

我也很好奇。假设我有一个包含一系列用户文档的“朋友”数组。如何在不实际删除用户的情况下取消链接文档? – bento

回答

0

不太清楚你想要做什么。您可以在Mongoose文档上调用toObject()来生成文档的普通JavaScript对象表示,该文档可以安全地传递和修改,而不必担心意外更改了数据库。

+0

我也对此感兴趣,因为我得到的意思是从已填充数组中删除一个项目,而不从原始集合中删除此项目,从中收集此数组。例如,我想存储特定文档的参考,并且由于我在某个时候需要填充它。现在我的参考被填充,如果生病从它的填充数组中删除一些东西,并保存我将最终删除原来的人口捐助者阵列的东西。它似乎删除/更新意味着用于人口稀少的状态,但是,如果使用人口 - 我需要永远使用finOne,如果我想编辑文档。 –

+0

参考我的意思是一个简单的变量。如'var reference;' 'Users.findOne(.... functuon(err,founduser){reference = founduser})' 然后如果我可以说要添加一些东西,填充它并发送我的引用成为人口稠密,我将无法删除数组中的'人口的链接'的OE,因为它是填充的,这样的尝试将删除不是链接,而是从数据库链接的项目。 也许我只是不明白的东西,但似乎没有办法在变量中存储文档参考,并与人口一起工作。 –

+0

@MaxYari只要你没有对填充的文档调用'remove()'方法,就可以从数组中删除没有副作用的文档。如果您需要更多帮助,请继续并发布新问题。 – JohnnyHK

相关问题