Я хочу обновить свое поле _id в одном из документов (показано ниже).Обновление поля _id в MongoDB
{
_id : ObjectId("586d9d5d23352af1a4aa05f7"),
name: "Soham",
age : 99,
city : "XYZ"
}
Так что я побежал следующие шаги:
var doc = db.names.find({name:"Soham"});
doc._id = 111 ; -- 111 is not present in that collection for any document
db.names.remove({_id:ObjectId("586d9d5d23352af1a4aa05f7")});
db.names.insert(doc);
Первые 3 строки не бросил какую-то ошибку, но в тот момент я выполнил команду вставки, она бросала ошибку. Может кто-нибудь, пожалуйста, дайте мне знать, что происходит не так.
Заранее благодарен!
Сначала вы должны прочитать документацию. Поле '_id 'является ** первичным ключом ** эквивалентом SQL в MongoDB, а его формат - [ObjectId] (https://docs.mongodb.com/manual/reference/method/ObjectId/). Он имеет четко определенную структуру. Таким образом, вы ** не можете установить произвольное значение в качестве идентификатора для документа. Во-вторых, вы должны ** никогда не делать этого. Какова ваша цель? –
@guzgarcia '_id' в MongoDB не обязательно является' ObjectId', это может быть все, что вы хотите, включая сложный объект. – GaspardP
@Soham: Пожалуйста, включите ошибку, вызванную – GaspardP