防止在终端中输出MongoDB BSON BinData

时间:2016-09-30 18:26:25

标签: mongodb

我在不使用GridFS的情况下将文件存储在常规MongoDB文档中(文件都小于16MB的限制)。

采用这种方法时,我遇到的问题是,当我在终端中执行db.collection.find操作时,它将输出整个二进制数据。对于小文件,这不是问题,但是当文件为8MB时,在终端中输出该二进制文件大约需要20秒。

有没有办法阻止将整个二进制数据输出到终端?

该文件大致具有以下结构:

{
  _id: ObjectId
  field1: string
  field2: string
  field3: string
  attachment: {
                 filename: string
                 data: BinData
              }
}

如果没有attachment,它将被排除在文档之外。

1 个答案:

答案 0 :(得分:1)

如何确保查询找到其中包含字段附件$exists的文档,但使用结果中的projection排除该字段?

db.bindata.find({attachment:{$exists:true}}, {attachment:false})

您可以扩展您的查询。只要确保你保持附加条件。