По какой-то причине mongoose, похоже, не может найти мой документ после вызова find
из-за пользовательского идентификатора.Mongoose найти на пользовательском _id не работает
Источник задачи:
// ...
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 }
Указав, кажется, не в состоянии найти документ с идентификатором ноль, но сразу следует вверх жалуясь, что ключ уже существует со значением 0, когда я пытаюсь создать новый.
После глядя на базу данных, я могу ясно видеть мой документ с _id
0.
{
"id": 0,
// ...
}
И это схема я использую:
const ItemSchema = new mongoose.Schema({
_id: { type: Number, min: 0, max: 400000, unique: true, required: true },
// ...
}
Я пробовал find
и findOne
в цепных и неразъемных версиях и findById
. Ни один из них не обрабатывает существующий документ. Зачем?
Я не могу поверить, что пропустил это. Благодарю. – NukesForKids