0

我已经查了一段时间了,我被卡住了。我还提到了这个问题和这个问题并尝试了它,但我无法让它运行。

这是我项目的简要概述:我有一个 python 脚本,它每天从服务器上的一些日志中解析数据。每个日志都是一个 python 对象,它存储在一个集合中,在 mongoDB 的 db 'stabilitylogs' 中具有相应的日期。

我现在已经安装了节点和猫鼬,我正在尝试从名为 - 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

除非你的文件中已经有var Schema = mongoose.Schema;,否则你需要new mongoose.Schema像 JohnnyHK 所说的那样使用。此外,如果您希望查询立即执行,猫鼬模型上的find 方法应该看起来像这样。

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