2017-11-19 8 views
0

私はポーリングアプリを作っています。ユーザーID、IPアドレス、またはMACアドレスに基づいて投票に投票したユーザーを保存したいと思います。Mongoose - サブ文書が機能しないのはなぜですか?

私のPollモデルにvoted: VotedSchemaという属性を付けると、まっすぐ進むと思っていましたが、何らかの理由で機能しません。

ポールモデル:

const mongoose = require('mongoose'); 
const { Schema } = mongoose; 
const OptionSchema = require('./Option'); 
const VotedSchema = require('./Voted'); 

const pollSchema = new Schema({ 
    title: String, 
    options: [OptionSchema], 
    dateCreated: { type: Date, default: Date.now() }, 
    _user: { type: Schema.Types.ObjectId, ref: 'User' }, 
    voted: VotedSchema 
}); 

mongoose.model('polls', pollSchema); 

投票subdocサブ:一方で、私はsubdocサブを使用しない場合

const mongoose = require('mongoose'); 
const { Schema } = mongoose; 

const votedSchema = new Schema({ 
    userID: [String], 
    IPaddress: [String], 
    MACaddress: [String] 
}); 

module.exports = votedSchema; 

は、それだけで正常に動作します:

const mongoose = require('mongoose'); 
const { Schema } = mongoose; 
const OptionSchema = require('./Option'); 
const VotedSchema = require('./Voted'); 

const pollSchema = new Schema({ 
    title: String, 
    options: [OptionSchema], 
    dateCreated: { type: Date, default: Date.now() }, 
    _user: { type: Schema.Types.ObjectId, ref: 'User' }, 
    voted: { 
    userID: [String], 
    IPaddress: [String], 
    MACaddress: [String] 
    } 
}); 

mongoose.model('polls', pollSchema); 

何か不足していますかスーパーシンプル?この問題は少し難解です。

+0

あなたは、参照サブ文書の場合には動作していないとはどういう意味か、明確にすることはできますか? –

答えて

0

これはまだマングースでは実装されていません。

これをチェックしてください。今の

https://github.com/Automattic/mongoose/pull/585

したい場合は、あなたがやっているように、第2のオプションを行うことができます。文書の

又は使用

VotedSchema.Type又はVotedSchema.tree

埋め込みアレイによって行うことができます。

投票:[VotedSchema]

http://mongoosejs.com/docs/subdocs.html#single-embedded

+0

それは役に立ちますか? –

関連する問題