по всей коллекции (или может вообще по всей базе) или только в рамках некой ограниченной структуры?
Т.е. могут ли id-шники в каком-то случае совпасть?
Могу ли я обновить поле глубоко внутри документа только по его _id?
уникальная в рамках одной коллекции, обновить можете
Ну обджект айди уникален вовсе, как утверждает разрабы монги. С вероятностью если не ошибаюсь 1 на лям
Спасибо >обновить можете Подскажите как? db.document,update({_id:ObjectId('..'), otherField: '123'}) Так он мне найдет хоть где, в любом уровне вложенности?
({_id...} , {fieldForUpdate....})
т.е. с вероятностью 1 на лям будут коллизии и внутри коллекции?
Не уверен что шансы точно такие (мб лярд) но да
Когда я делаю find по этому _id (который засунут глубоко в документ), то ничего не находит. В таком случае и update не должен сработать
если вложенность, то запросы надо строить вида .find({ ‘fieldA.fieldB._id’: _id })
У меня там массивы в массивах.. Сейчас попробовал так: .find({'matchings[0].items[0].productId':'1338414'})
с массивами так: https://docs.mongodb.com/manual/reference/operator/query-array/ https://docs.mongodb.com/manual/reference/operator/update-array/
Получилось, но он все равно нашел весь документ полностью, я то думал будет ссылка на мой маленький подобъектик. Как обновить то мне его теперь?
Первая ссылка - на поиск, вторая на обновление
В доке написано по какому принципу формируется _id. Это не что-то прям случайное.
Обсуждают сегодня