У меня возникла проблема после переноса БД Cosmos Mongo в новую БД Cosmos Mongo.После того, как я успешно мигрировал и пытался обновить элемент в коллекции, я получаю эту ошибку:
MongoError: query in command must target a single shard key
Впервые я вижу эту ошибку.Чтение данных не является проблемой, но обновление больше не работает.
Например:
// Update suit
exports.update_suit = function (req, res, next) {
Suit.updateOne({
id: req.params.id,
}, {
$set: req.body
}, function (err, suit) {
if (err) return next(err);
res.send("Suit has been updated");
})
};
Это шаме для вышеперечисленного:
let SuitSchema = new Schema({
type: {type: String},
size: {type: String},
shoeSize: {type: String},
id: {type: String, unique: true, required: true},
location: {type: ObjectId},
status: {type: String},
nextService: {type: Date},
lastService: {type: Date},
condition: {type: String},
assignedTo: {type: Object, default: {}},
comment: {type: String},
make: {type: String},
model: {type: String},
suitType: {type:ObjectId},
year:{type: String},
vessel:{type: String},
guestSuit: {type: Boolean, default: false},
decomissioningReason: {type: ObjectId},
checkOutComment: {type: String},
inUseTempComment: {type: String},
}
ЗдесьЯ использовал другой идентификатор, чем ObjectID.Это работало просто отлично до окончания миграции.
Есть ли способ отключить шардинг или как-то иначе это исправить?