I need to insert a document into a collection, which has an ObjectId
and a BinData
value. Therefore I don't know how to insert it.
With this code I get the error TypeError: Cannot read property 'ObjectId' of undefined
.
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);
Update
I'm using Meteor
Therefore I can use var ObjectId = Meteor.Collection.ObjectID;
. But how do I get the BinData
?
ReferenceError: BinData is not defined
Here is the NodeJS code to insert data into collection. To answer your question specifically, you need the below statement if you are using NodeJS.
var ObjectId = require('mongodb').ObjectID;
Full NodeJS code (assuming you are using NodeJS):-
var Db = require('mongodb').Db, MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var ObjectId = require('mongodb').ObjectID;
var bindata = new require('mongodb').Binary("ZzEudm1s");
var insertDocument = function(db, callback) {
var chunk = {
"_id" : new ObjectId("535e1b88e421ad3a443742e7"),
"files_id" : new ObjectId("5113b0062be53b231f9dbc11"),
"n" : 0,
"data" : bindata
};
db.collection('Day1').insertOne(chunk, function(err, result) {
assert.equal(err, null);
console.log("Inserted a document into the collection.");
callback();
});
};
MongoClient.connect('mongodb://localhost:27017/test', function(err, db) {
assert.equal(null, err);
insertDocument(db, function() {
db.close();
});
});
If you need a pure JavaScript object of ObjectId, you can use the below library.
https://www.npmjs.com/package/objectid-purejs