[英]Mongoose find on custom _id not working
无论出于何种原因,由于自定义ID,猫鼬在find
呼叫后似乎无法实际找到我的文档。
问题的根源:
// ...
models.Item.findOne().where({ _id: item.id }).exec((i) => {
console.log(item.id, i);
if (!i) i = new models.Item({ _id: item.id, href: item.href, name: item.name });
// ...
控制台仅记录以下内容:
> 0 null
> MongoError: E110000 duplicate key error index: items.$_id_ dup key: { : 0 }
表明它似乎无法找到ID为零的文档,但是当我尝试创建一个新的密钥时,立即抱怨该密钥已经存在,其值为0。
查看数据库后,我可以清楚地看到_id
为0的文档。
{
"id": 0,
// ...
}
这是我正在使用的架构:
const ItemSchema = new mongoose.Schema({
_id: { type: Number, min: 0, max: 400000, unique: true, required: true },
// ...
}
我试过在链式和非链式版本中使用find
和findOne
以及findById
。 他们都没有在编写现有文档。 为什么?
您在exec
回调中缺少error参数。 它应该是:
models.Item.findOne().where({ _id: item.id }).exec((err, i) => {...
第二个参数是文档结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.