Я хотел бы сократить все длинные описания в моем объекте.Я искал и прочитал много статей, но я не могу понять, как выполнить эту простую задачу в mongoDB.То, чего я пытаюсь добиться, было бы просто в SQL:
UPDATE AssetDocument SET description = substr(description, 0, 500) WHERE length(description) > 500
Может кто-нибудь помочь мне сделать это в MongoDB?
Я пробовал это:
db.AssetDocument.updateMany(
{$where: "this.metadata.description.length > 500"},
{$set: { "metadata.description": { $substr: ["metadata.description", 0, 500]}}});
Это дает мне errmsg: The dollar ($) prefixed field '$substr' in 'metadata.description.$substr' is not valid for storage.
Тогда я попробовал это:
db.AssetDocument.find({
$where: "this.metadata.description.length > 500"
}).forEach(function(e){
e.metadata.description = {$substr: [e.metadata.description, 0, 500]};
db.AssetDocument.save(e);
});
Но это не работает ...