Mongodb - 将媒体存储在文档和性能中

时间:2014-09-22 15:34:00

标签: mongodb image mongoose nosql

我计划将用户图像存储到mongodb集合文档中,如下所示:

{
 username:String
 email: String,
 avatar: binary/base64/img
}

现在,当检索用户配置文件时,我必须从查询中检索所有这个对象,所以我想知道(将媒体或二进制数据存储到文档中)会减慢查询或某个地方的性能或以某种方式降低性能?

1 个答案:

答案 0 :(得分:1)

您无需检索所有信息。您可以使用projection来取回用户名和电子邮件

> db.collection.find(<query condition>, { "username" : 1, "email" : 1, "_id" : 0 })

这会从服务器向客户端发送较少的信息,但您仍然需要将整个文档加载到服务器的内存中,这对您来说可能重要,也可能不重要。如果二进制信息很大,就像高分辨率图像一样,请记住MongoDB中的文档有严格的16mb限制。在这种情况下,您应该考虑使用GridFS来存储图像。