1

node.jsにテーブル内のデータをコンソールに書き込もうとしていますが、他のテーブルは機能します。

試してみると、次の出力が得られます。

NO ERROR!
QUERY:{"emitted":{"complete":[[]]},"_events":{}}

スキーマ定義に何かが欠けていますか?どんな助けでもいただければ幸いです。
-エリック



以下はmongoシェルからのものです:

> db.userAssessments.find({})
{ "accountId" : "509683edcb884b0000000001", "created" : ISODate("2013-01-12T03:31:20.723Z"), "_id" : ObjectId("50f0d9084469766bb7000001") }

これは私のjsです:

var userAssessmentsSchema = new mongoose.Schema({
    accountId : String,
    created : Date,
    id: String
});

ANALYZER.userAssessments = mongoose.model('userAssessments', userAssessmentsSchema);
ANALYZER.analyzeAssessment = function() {
    var query = ANALYZER.userAssessments.find({}).exec(function(err, ass) {
        if (!err) {
            console.log("NO ERROR!");
            console.log("QUERY:" + JSON.stringify(query));
        } else {
            console.log("ERROR!");
        }
    });
};
4

1 に答える 1

2

クエリの結果は、 (コード内の)2番目のパラメーターとしてコールバックにfind渡されます。割り当てる戻り値は、から返されたオブジェクトです。execassqueryPromiseexec

アップデート

もう1つの問題は、Mongooseがモデル名を複数形にして小文字にして、コレクション名を指定しない場合はコレクション名を派生させることです。userAssessments代わりにコレクションを使用するuserassessmentsには、呼び出しでそのコレクション名を指定する必要がありmongoose.modelます。

したがって、コードは代わりに次のようになります。

ANALYZER.userAssessments = mongoose.model(
    'userAssessments', userAssessmentsSchema, 'userAssessments');

ANALYZER.analyzeAssessment = function() {
    ANALYZER.userAssessments.find({}).exec(function(err, ass) {
        if (!err) {
            console.log("NO ERROR!");
            console.log("QUERY:" + JSON.stringify(ass));
        } else {
            console.log("ERROR!");
        }
    });
};
于 2013-01-12T03:53:26.800 に答える