0

実際には、レーティングの参照の配列を含むサービスコレクションを作成したいと思います。ユーザーの参照、サービスID番号、およびレーティングを含む配列に要素よりもサービスがあるユーザーレートがプッシュされたとき。Mongooseで配列を参照する方法

var ServiceSchema = new Schema({ 
     user_id:{ 
     type: String, 
     required: [true, 'please provide user id'] 
     }, 
     name: { 
     type: String, 
     required: [true, 'please enter your name'] 
     }, 
     rating : [{ type: Schema.Types.ObjectId, ref: 'rating' }], 
    }); 

Rating schema

var RatingSchema = Schema({ 
     S_id : { type: Schema.Types.ObjectId}, 
     Rating : Number, 
     By : { type: Schema.Types.ObjectId} 
    }); 

user schema

このようなService Model

var UserSchema = new Schema({ 
     id: { 
     type: String, 
     unique: true, 
     required: [true, 'please enter your id'] 
     }, 
     password: { 
     type: String, 
     required: [true, 'please enter your password'] 
     }, 
     name: { 
     type: String, 
     required: [true, 'please enter your name'] 
     }, 
     type: { 
     type: [{ 
      type: String, 
      enum: ['visitor', 'seller'] 
     }], 
     default: ['visitor'] 
     }, 
    }); 

と私はとして輸出を定義している:

module.exports = mongoose.model('user', UserSchema, 'users'); 
    module.exports = mongoose.model('service', ServiceSchema, 'service'); 
    module.exports = mongoose.model('rating', RatingSchema, 'rating'); 

私はレートと呼ばれる機能を作りたいと思っていますが、それを作る方法はわかりません。

exports.rate = function(req, res) { 
     var curr_service = new Service(req.body, result); 
     new_service.save(function(err, service) { 
     if (err) 
      res.send(err); 
     res.json(service); 
     }); 
    }; 

これまでのところこれを行っています。

私は今何をすべきか理解できる人がいますか?私はmongooseについて多くを見つけることができなかったので、配列でrefを追加する...

答えて

0

私の場合。このエラーは、オブジェクト宣言内に{es_indexed: true}を入れる代わりに、使用していたオブジェクトに入れていたために発生しました。たとえば:

const Client: Schema({ 
    name: {type: String, es_indexed: true}, 
    address: {type: Adress, es_indexed: true} //Wrong, causing error 
}) 

Adress: Schema({ 
    address: {type: String}, 
    zipCode: {type: Number} 
}) 

使用する正しい方法、「住所」スキーマ宣言内のプリミティブ型にes_indexed: trueを入れています。

const Client: Schema({ 
    name: {type: String, es_indexed: true}, 
    address: {type: Adress} //Right way 
}) 

Adress: Schema({ 
    address: {type: String, es_indexed: true}, 
    zipCode: {type: Number, es_indexed: true} 
}) 

は、私はそれが参考に

だった願っています
関連する問題