你可以存储对mongo集合的引用吗?

时间:2012-04-21 16:22:48

标签: javascript node.js mongodb

在文件的顶部我可以输入类似......

的内容

var collection = db.mongo.collection('test', function(err, collection){return collection});

然后在任何文件函数中使用collection.find()

我想我的问题是...... collection是对集合或数据副本的引用吗?

如果集合中的数据发生变化,我仍会通过查询collection变量来获取最新数据吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

Collection是集合对象的引用。在发出find(或findOne)之前,您手中没有真实数据。即使这样,它也会返回一个Cursor对象,使得集合对象始终保持不变。

存储集合或游标不会存储您的数据。记住你可以处理数百万条记录。处理数据本身对于服务器内存来说可能是压倒性的。相反,mongo会返回游标和引用以供您过滤掉。在PHP中,您有一个名为iterator_to_array的函数,您可以将其传递给游标并将其转换为数据数组。在javascript中我不知道是否有这样的功能。但我想这样的功能是没有意义的。过滤信息,直到您具有可管理的数据大小,然后迭代光标并执行您的操作。如果您有类似于配置数组或类似内容的内容,请尝试将所有内容存储在一个文档中并使用findOne()函数获取它。

但最后我想这只是一个设计问题,你的数据是否可以过滤。