К тому времени, когда вы получите его в коде, это будет строка, ObjectId()
не является поддерживаемым типом JSON, он из BSON , который задан MongoDB c. Поэтому, когда вы запрашиваете базу данных, внутренние драйверы конвертируют ObjectId () в строку и представляют ее вам. Вы можете передавать его в любом месте, как строка, и когда вы запрашиваете / удаляете документ, используя который вам нужно конвертировать string
из ObjectId()
, чтобы он соответствовал типу поля _id
в базе данных.
mongodb Driver:
const ObjectId = require('mongodb').ObjectId;
const id = new ObjectId(objectIdSring);
mon goose:
const mongoose = require('mongoose');
const id = mongoose.Types.ObjectId(objectIdSring);
Примечание: Вам не нужно сделать это преобразование самостоятельно при использовании функции .findByIdAndDelete () , предоставляемой mon goose - которая фактически принимает строку и внутренне преобразуется в ObjectId () . Мало того, что он имеет несколько других функций, похожих на это, вы можете проверить функции с синтаксисом: .findById*****
.