创建新字段不想将 mongoose.Types.ObjectId 保存为 MongoDB 中的列
creating new field doesn't want to save mongoose.Types.ObjectId as a column in MongoDB
我正在尝试 link 两个 table 到 mongo 数据库。我有一个用户 table,其中用户有一个 _id。还有一个新闻 table,其中列应该是 _id(对于新闻)和 userId(对于 link 新闻给用户)。
我的 api 的工作方式是在请求通过身份验证时将用户 ID 附加到 req 变量。
这是用户的模型
const mongoose = require("mongoose");
const User = mongoose.model(
"User",
new mongoose.Schema({
name: String,
surname: String,
email: String,
password: String,
admin: Boolean,
profileImage: String,
})
);
这是新闻的模型
const mongoose = require("mongoose");
const News = mongoose.model(
"News",
new mongoose.Schema({
userID: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
})
);
这是保存新新闻记录的片段:
upload = (req, res) => {
const news = new News({
userId: mongoose.Types.ObjectId(req.userId)
})
//at this point userID in news is UNDEFINED for some reason. req.userId is not undefined.
news.save((err)=>{
if (err) {
res.status(500).send({ message: err + "NewsError" });
return;
}
})
}
理想情况下,这应该以数据库中 table 中出现的新行结束,但只有自动生成的 _id 出现,没有 userID
No UserID column
也许您可以使用以下代码代替 mongoose.Types.ObjectId(req.userId)
:
const { ObjectId } = require('mongodb');
userId: ObjectId(req.userId);
我发现错误:),
我在哪里定义模型。 userID 拼写为大写 ID,但我将变量分配为 userId。我只是瞎了眼。感谢大家的帮助。
我正在尝试 link 两个 table 到 mongo 数据库。我有一个用户 table,其中用户有一个 _id。还有一个新闻 table,其中列应该是 _id(对于新闻)和 userId(对于 link 新闻给用户)。
我的 api 的工作方式是在请求通过身份验证时将用户 ID 附加到 req 变量。
这是用户的模型
const mongoose = require("mongoose");
const User = mongoose.model(
"User",
new mongoose.Schema({
name: String,
surname: String,
email: String,
password: String,
admin: Boolean,
profileImage: String,
})
);
这是新闻的模型
const mongoose = require("mongoose");
const News = mongoose.model(
"News",
new mongoose.Schema({
userID: {
type: mongoose.Schema.Types.ObjectId,
ref: "User",
},
})
);
这是保存新新闻记录的片段:
upload = (req, res) => {
const news = new News({
userId: mongoose.Types.ObjectId(req.userId)
})
//at this point userID in news is UNDEFINED for some reason. req.userId is not undefined.
news.save((err)=>{
if (err) {
res.status(500).send({ message: err + "NewsError" });
return;
}
})
}
理想情况下,这应该以数据库中 table 中出现的新行结束,但只有自动生成的 _id 出现,没有 userID No UserID column
也许您可以使用以下代码代替 mongoose.Types.ObjectId(req.userId)
:
const { ObjectId } = require('mongodb');
userId: ObjectId(req.userId);
我发现错误:), 我在哪里定义模型。 userID 拼写为大写 ID,但我将变量分配为 userId。我只是瞎了眼。感谢大家的帮助。