0

私はこれをしばらく調べましたが、立ち往生しています。this question とthis questionも参照して試してみましたが、実行できませんでした。

これは私のプロジェクトの簡単な概要です: 私は毎日サーバー上のいくつかのログからデータを解析する python スクリプトを持っています。各ログは、mongoDB の db 'stabilitylogs' に対応する日付を持つコレクションに格納される python オブジェクトです。

ノードとマングースをインストールして、130702 という名前の特定のコレクションからこのデータを取得しようとしています。次のエラーが発生します。

C:\node_app\node_modules\mongodb\lib\mongodb\connection\server.js:570

エラーをスローします。^ ReferenceError: スキーマが定義されていません

私の stablelog.js は次のようになります。

            var mongoose = require('mongoose');
            mongoose.connect('mongodb://localhost/stabilitylogs');

            var db = mongoose.connection;
            db.on('error', console.error.bind(console, 'connection error:'));
            db.once('open', function callback () {
                var rackSchema=new Schema({
                    _id: {type: String },
                    Headend:{
                        Name: String,
                        Rack: {
                            TestInfo:{
                                ScriptStart: String,
                                TotalReboots: String,
                                ScriptLoopCount: String,
                                ScriptName: String,
                                ScriptStop: String,
                                SystemName: String,
                                TotalSTBs: String,
                                PerReboots: String,
                                RunTime: String,
                                BuildVer: String
                                },
                            StbData: [{
                                Status: String,
                                UpTime: String,
                                DBType: String,
                                IP: String,
                                DBVersion: String,
                                RebootData: String,
                                MAC: String,
                                MWApp: String,
                                OS: String
                                },],
                            Number: String
                            }
                        }
                    },
                {collection: '130702'});

                var doc = mongoose.model(rackschema, '130702');
                doc.find();
                });

私はこれに本当に慣れておらず、コードに多くのエラーがあると確信していますが、ここで本当に助けが必要です. MSIインストーラーとnodeJS - v0.10.12を使用して、Windows 7にインストールされたmongodb ver2.2.4でアプリ全体を実行しています。package.json ファイルを作成して、npm install で mongodb および mongoose モジュールをインストールしました。

どんな助けでも大歓迎です。また、さらに情報が必要な場合はお知らせください。

4

1 に答える 1

1

ファイルに既にある場合を除き、JohnnyHK が言ったようvar Schema = mongoose.Schema;に使用する必要があります。new mongoose.Schemaさらに、クエリをすぐに実行したい場合、マングース モデルのfind メソッドは次のようになります。

doc.find({}, function(err,collection){ 
//do something with the collection
});
于 2013-07-03T19:11:16.447 に答える