我试图将一个ObjectIds列表作为数组字段存储在文档中。
我知道Mongo DB对单个文档有4MB的大小限制。因此,考虑到ObjectId的长度为12个字节,文档应该能够在一个数组字段中处理超过300,000个条目。 (如果计算结束,请告诉我)。
如果数组中的条目数接近该限制,我可以期待什么样的性能?特别是当该领域被索引?有内存问题吗?
典型的查询如下所示:
按单个值查询
db.myCollection.find(
{
myObjectIds: ObjectId('47cc67093475061e3d95369d')
}
);
按多个值查询
db.myCollection.find(
{
myObjectIds: {$in: [ObjectId('47cc67093475061e3d95369d'), ...]}
}
);
为多个文档添加新值
db.myCollection.update(
{
_id: {$in: [ObjectId('56cc67093475061e3d95369d'), ...]}
},
{
$addToSet: {myObjectIds: ObjectId('69cc67093475061e3d95369d')}
}
);