我计划将用户图像存储到mongodb集合文档中,如下所示:
{
username:String
email: String,
avatar: binary/base64/img
}
现在,当检索用户配置文件时,我必须从查询中检索所有这个对象,所以我想知道(将媒体或二进制数据存储到文档中)会减慢查询或某个地方的性能或以某种方式降低性能?
答案 0 :(得分:1)
您无需检索所有信息。您可以使用projection来取回用户名和电子邮件
> db.collection.find(<query condition>, { "username" : 1, "email" : 1, "_id" : 0 })
这会从服务器向客户端发送较少的信息,但您仍然需要将整个文档加载到服务器的内存中,这对您来说可能重要,也可能不重要。如果二进制信息很大,就像高分辨率图像一样,请记住MongoDB中的文档有严格的16mb限制。在这种情况下,您应该考虑使用GridFS来存储图像。