我试图在用户模型上找到一个基于字符串的令牌。我收到错误:
Cast to ObjectId failed for value "{ passwordResetToken: '4946d72f19b9649d3f306a0f5be59005c884ae453fc049c7',
passwordResetExpires: { '$gt': 1543196590882 } }" at path "_id" for model "User"
文档的存储方式如下:
{
"_id": {
"$oid": "5bfb424da0cc0923f05b67f1"
},
"local": {
"email": "XXXXXXXXXXXXXXXXX",
"password": "XXXXXXXXXXXXXXXXX"
},
"isVerified": false,
"method": "local",
"__v": 0,
"passwordResetExpires": {
"$date": "2018-11-26T02:41:17.851Z"
},
"passwordResetToken": "4946d72f19b9649d3f306a0f5be59005c884ae453fc049c7"
}
我这样查询文档:
req.params.token = "4946d72f19b9649d3f306a0f5be59005c884ae453fc049c7"
User.findByIdAndUpdate({
'passwordResetToken': req.params.token,
'passwordResetExpires': { $gt: Date.now() }
},
{
'local.password' : req.body.password,
'passwordResetExpires' : null,
'passwordResetToken' : null
}, {new: true})
.then(user => {
res.send(user);
})
.catch(err => next(err))
这是我当前的模式:
var userSchema = mongoose.Schema({
method: {
type: String,
enum: ['local', 'google', 'facebook']
},
local: {
email: {
type: String,
lowercase: true
},
password: String,
},
google: {
id: String,
email: {
type: String,
lowercase: true
},
name: String,
token: String
},
facebook: {
id: String,
name: String,
token: String
},
isVerified: {
type: Boolean,
default: false,
required: true
},
passwordResetToken: String,
passwordResetExpires: Date
});
我猜mongoose正试图将这个十六进制字符串转换成一个_id值?是否有某种方法可以防止mongoose将字符串强制转换为ObjectId类型
?
在mongoose中,如果使用findByIdAndUpdate()
,则必须提供一个objectID值。因此,在您的情况下,它试图找到一个对象ID,但无法找到,因此您会得到一个错误。更适合您的用例的是findOneAndUpdate()
。在这里,您可以自由使用其他参数。
问题内容: 我试图在猫鼬中指定我的数据库的架构。目前,我这样做: 我创建模式并尝试保存一些数据。 错误: 我根据以下代码编写了此代码:http : //mongoosejs.com/docs/populate.html#gsc.tab=0 我怎样才能解决这个问题? 问题答案: 您引用的猫鼬文档中的示例用于该字段以及其他字段。 我假设他们在示例中这样做是为了证明可以使用其中任何一个。如果未在架构中指
问题内容: 我有一个带有ID号的大型数据框: 这些现在都是字符串。 我想转换为不使用循环-为此我使用。 问题是我的某些行包含无法转换为的脏数据,例如 如何(不使用循环)删除这些类型的事件,以便我可以放心使用? 问题答案: 您需要向功能添加参数: 如果是列: 但非数字会转换为,因此所有值都是。 对于需要转换到一些值,例如,然后转换为: 样品: 编辑:如果使用0.25+大熊猫,则可以使用:
这个问题不难,我已经用自己的方法解决了,但我想听听你的意见,也许有什么方法可以让这成为一个改进的选择?Java 8-11。
今天早上,我试图将LibraryFolder ClasspathContainer插件安装到我的Eclipse(STS 3.6.1)中:每次尝试执行时,安装它都会导致上述错误。 更糟糕的是,我试图从Eclipse Marketplace安装插件,但Eclipse在出现大量错误时开始崩溃,包括JVM崩溃。卸载两个插件都没有修复。我尝试了一个新的工作区和一个空白的Eclipse安装,但最终不得不安装以
问题内容: 熊猫的read_csv()方法将’NA’解释为nan(不是数字),而不是有效的字符串。 在下面的简单情况下,请注意,第1行第2列(基于零的计数)的输出为’nan’而不是’NA’。 sample.tsv (制表符分隔) PDB链SP_PRIMARY RES_BEG RES_END PDB_BEG PDB_END SP_BEG SP_END 5d8b N P60490 1146 114
我试图反序列化从Web API接收的JSON字符串 然而,它给出了一个错误:无法强制转换或转换系统。字符串到App1。ApiResult