2016-08-09 7 views
1

ObjectIdBinDataの値を持つコレクションにドキュメントを挿入する必要があります。したがって、私はそれを挿入する方法を知りません。objectIdを使ってバイナリデータをmongoDBに追加する方法は?

このコードでは、エラーTypeError: Cannot read property 'ObjectId' of undefinedが発生します。

サーバー/ 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); 

アップデート私はので、私はvar ObjectId = Meteor.Collection.ObjectID;を使用することができます流星

を使用してい

。しかし、どうすればBinDataを入手できますか?ここで

ReferenceError: BinData is not defined

+0

Mongoシェルから実行していますか? – notionquest

+0

いいえサーバーサイドのJSファイル – user3142695

+0

私は自分の答えを投稿する前に明確にするために、NodeJS(サーバーサイドJS)を使用していますか? – notionquest

答えて

0

コレクションにデータを挿入するNodeJSコードです。あなたの質問に具体的に答えるには、NodeJSを使用している場合は以下のステートメントが必要です。

var ObjectId = require('mongodb').ObjectID; 

全NodeJSコード(あなたは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(); 
    }); 
}); 

あなたがのObjectIdの純粋なJavaScriptオブジェクトが必要な場合は、以下のライブラリを使用することができます。

https://www.npmjs.com/package/objectid-purejs

+1

ObjectIDについては、私は 'Meteor.Collection.ObjectID'を使用できるという情報を発見しました。しかし、いいえ、ReferenceError:BinDataが定義されていません。 – user3142695

+0

は正解と思われません。 '.Binary'は関数ではありません。 – adi

関連する問題