在MongoDB中创建新文档时,无法显示所有字段,当前以下内容的输出如下,它忽略了postTitle,postContent字段等。模式是否存在问题?文档不是很清楚。
我有一个非常简单的Mongo DB设置,如下所示:
const userSchema = new mongoose.Schema({
firstName: String,
lastName: String,
email: String,
hashPass: String,
userName: String,
isVerified: Boolean,
})
const postSchema = new mongoose.Schema({
user: {type: mongoose.Schema.Types.ObjectId, ref:'User'},
postDate: mongoose.Schema.Types.Date,
postContent: String,
postTitle: String,
views: Number,
likes: Number
})
const User = mongoose.model('User', userSchema)
const Post = mongoose.model('Post', userSchema)
然后我尝试这样创建一个帖子,并注入用户对象ID:
const createPost = async ( postContent, postTitle, user) => {
const post = await new PostsDb({
user,
postDate: Date.now(),
postContent,
postTitle,
views: 0,
likes: 0
})
await post.save()
}
createPost( 'bla bla', 'title of post', '5ebab7d3351253283ca610dc')
答案 0 :(得分:0)
在发布方案中,您将用户shema再次添加到用户中。
const User = mongoose.model('User', userSchema)
const Post = mongoose.model('Post', userSchema)
对于用户模型是userSchema,对于后模型是PostSchema。
此外,我的建议是您将postTitle和postContent设置为必需,并避免创建空记录。
const userSchema = new mongoose.Schema({
firstName: String,
lastName: String,
email: String,
hashPass: String,
userName: String,
isVerified: Boolean,
})
const postSchema = new mongoose.Schema({
user: {type: mongoose.Schema.Types.ObjectId, ref:'User'},
postDate: mongoose.Schema.Types.Date,
postContent: {
type: String,
required: true
},
postTitle: {
type: String,
required: true
},
views: Number,
likes: Number
})
const User = mongoose.model('User', userSchema)
const Post = mongoose.model('Post', postSchema)
和
const post = new Post({
user,
postDate: Date.now(),
postContent,
postTitle,
views: 0,
likes: 0
})
await post.save()