我想在mongo db中只获取一个相当大的数据集的ID(这里没有破坏任何记录,但是太多而无法合理地加载到RAM中)。
我目前正在使用游标迭代集合中的所有ID,并以这种方式处理结果。有没有办法获得ids(投影)?这比仅仅在所有记录上使用光标更有效吗?
答案 0 :(得分:1)
如果该字段是唯一的(因此您对dupes没有任何问题),那么是的,您需要做的就是指定一个投影。例如,如果您有一个名为ID的字段,您可以执行以下操作:
db.mycollection.find({}, {_id: 0, ID: 1})
查找的第二个参数是投影,在这种特殊情况下,我们要求查询返回ID
字段并特别排除_id字段(默认情况下总是返回)。
如果您将这些ID存储在_id
中,则会变为:
db.mycollection.find({}, {_id: 1})