2017-01-11 10 views
0

私は最近、私が些細な問題と呼ぶものにこだわらずに私の髪を引き抜こうとしています。 nodejsのmongooseが特定のフィールド入力を処理する方法。私はmongooseがやっているのと同じことをやっていない特定の問題があります。nodejsの正確なフィールド入力mongoose

フィールド名に「 - 」記号を使用すると、mongooseが文字列の一部として受け入れる代わりに、それに奇妙な操作を実行するように見えるという問題があります。 いくつかの/ regexコマンドを実行しようとしましたが、私が探している特定のデータを知っているので、ちょうど入力を取る必要があります。

datapoints.find({type: "charging-type", device: device._id}) 
      .exec(function(err, objects){ 
        if(!objects){ 
         log("Can't find objects"); 
        } 
       }); 

はストレートのmongoシェルとタイピングに行く:問題は、以下れる原因

コード

db.datapoints.count({type: "charging-type", device: device._id}) 

タイプを取り出すには、例えばに種類を変え、すべての作業を行いますシャント電圧、電流、...すべてが完璧に動作します。

このように、この記号の使用で問題が発生します。 この入力文字列に特殊文字を正確な文字列として入力する方法はありますか?

ご協力いただければ幸いです。

リクエストごとに編集します。私は何のエラーも出ません。私はオブジェクト==未定義(または!オブジェクト)、スキーマは以下のようになります。有用な答えが得られなかったとして

var datapointSchema = mongoose.Schema({ 
    type:    { type: String, lowercase: true}, 
    value:    { type: Number}, 
    timestamp:   { type: Number}, 
    device:    { type: ObjectId, ref: "devices"} 
}); 

module.exports = mongoose.model('datapoints', datapointSchema) 
+0

私は考えていない「 - 」記号が任意のエラーを与えるだろう、私はエラーを取得していないよ – Sam

+0

を取得ウルスキーマとエラーでウル答えを更新してくださいは、私は単に値を戻していないだけです。 "objects == undefined"(または!オブジェクト)は、これを実行すると基本的に真です。 –

答えて

0

は手動で、chargingstatusからchargingstatusにMongoDBのフィールドを更新しました。

これは回避策であり、未解決とみなす必要があります。

最終的なコードは以下のような見終わった:

var cursor = calcpoints.find({device: device._id}).where('type').equals('chargingstatus').sort({timestamp: 1}).cursor(); 
関連する問題