我正在制作一个投票应用,我想根据用户ID,IP地址或MAC地址保存已投票的用户。
我认为在我的voted: VotedSchema
模型中设置Poll
属性会很直接,但由于某种原因它无效。
民意调查模式:
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);
投票的子网:
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)
这还没有在mongoose中实现。
看看这个。
https://github.com/Automattic/mongoose/pull/585
现在如果你愿意,你可以像你一样做第二个选项。
或使用
VotedSchema.Type
或VotedSchema.tree
可以通过数组来嵌入文档。
投票:[VotedSchema]