javascript - 如何将带有objectId的二进制数据添加到mongoDB中?

标签 javascript mongodb meteor insert objectid

我需要将文档插入到集合中,该集合具有 ObjectIdBinData 值。因此我不知道如何插入它。

使用此代码,我收到错误TypeError:无法读取未定义的属性“ObjectId”

server/fixtures.js

var ObjectId = Mongo.ObjectID;
var chunk = {
            "_id"     : ObjectId("57a9be3c89c1e4b50c574e3a"),
            "files_id": ObjectId("5113b0062be53b231f9dbc11"),
            "n"       : 0,
            "data"    : BinData(0, "/9j/4AAQSkZJRgA...and...so...on../2Q==")
        };

db.mediafiles.chunks.insert(chunk);
<小时/>

更新

我正在使用Meteor

因此我可以使用var ObjectId = Meteor.Collection.ObjectID;。但如何获取 BinData

ReferenceError:BinData 未定义

最佳答案

今天也偶然发现了这一点。

正如另一个答案提到的,您可以使用 MongoDB 驱动程序提供的 ObjectIDBinary 。我遇到的问题是插入后二进制数据不是我所期望的,这是由于 Binary 函数的内部工作原理造成的。它需要一个未编码的字符串或一个缓冲区,可以从 Base64 编码的内容初始化,如下所示:

const { Binary, ObjectID } = require('mongodb')

async function run() {
  // Configure MongoDB connection
  const client = new MongoClient()

  // Connect to MongoDB
  await client.connect(...)

  try {
    // Insert data using base64 encoded content and 
    // both ObjectID and Binary from mongodb package
    await client.db().mediafiles.chunks.insert({
      _id: ObjectID('57a9be3c89c1e4b50c574e3a'),
      files_id: ObjectID('5113b0062be53b231f9dbc11'),
      n: 0,
      data: Binary(Buffer.from('/9j/4AAQSkZJRgA...and...so...on../2Q==', 'base64')),
    })
  } finally {
    // Close client if it was opened
    await client.close()
  }
}

关于javascript - 如何将带有objectId的二进制数据添加到mongoDB中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38850650/

相关文章:

MongoDB 聚合比较 : group(), $group 和 MapReduce

c# - 如何创建包含 $redact 的 c# mongodb 管道

Javascript/meteor android 返回对象到模板

javascript - 防止浏览器注释掉php代码html文本编辑器

javascript - 为什么这个 javascript 不能在 Windows 8 上运行。1's IE11? (It works on the latest version of Firefox, Chrome, even Windows 7' s IE11)

python - 毫升抗体 : Temporary Failure in name resolution

javascript - 如何从 Meteor.js 中方法内部的方法返回错误

javascript - jQuery AJAX - $.each 使用正确的数据重复 html 结构?

ASP.NET 验证未在 JavaScript showModalDialog 调用中执行

javascript - Meteor js 和多人游戏