【发布时间】:2022-02-19 06:39:29
【问题描述】:
我正在努力使用 MongoDB、Mongoose 和 NodeJS 使以下代码正常工作。我有两种模式,一种用于保存唯一的用户配置文件,另一种用于保存他们的条目(这样他们可以多次输入)。条目都有效(此处未显示),只是获胜者的选择无效。它应该从集合中随机选择一个条目,找到它们的唯一配置文件并将“won”布尔值设置为 true 并删除集合中的所有条目。它目前没有做任何这些事情(但我已经检查了路由一切正常并且触发了 const ),所以非常感谢一些帮助。我尝试了各种方法,但在任何地方都没有找到明确的指导。谢谢。
控制器
const { Enter } = require('../models/user_entry');
const { UserProfile } = require("../models/User_Profile");
const drawWinner = async (req, res) => {
const winner = Enter.aggregate([{ $sample: { size: 1 } }]);
const users_profile = await UserProfile.findOne({ handle: winner.user });
users_profile,{"$set":{"won":true}};
await users_profile.save();
Enter.deleteMany({ });
};
module.exports = {
drawWinner
};
模型:
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// Create Entry Schema
const EntrySchema = new Schema({
user: {
type: String,
required: true,
},
});
const Enter = mongoose.model("entries", EntrySchema);
module.exports = { Enter };
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// Create Profile Schema
const UserProfileSchema = new Schema({
user: {
type: Schema.Types.ObjectId,
ref: "user",
},
handle: {
type: String,
required: true,
trim: true,
unique: true,
},
won: {
type: Boolean,
default: false,
},
});
const UserProfile = mongoose.model("profile", UserProfileSchema);
module.exports = { UserProfile };
【问题讨论】: