Я не являюсь носителем английского языка.Так что простите мои грамматические ошибки
В Mongoose Model.find () вернет массив документов, где мне нужно изменить положение документов в массиве в соответствии с потребностями пользователя.
Для этого я написал текущие коды. Пожалуйста, просмотрите мой код и скажите, что мой подход в порядке или нет
, если можете, пожалуйста, поделитесь лучшей идеей для выполнения этого типа операций.
У меня текущая схема Mongoose
const mongoose = require("mongoose");
const { Schema, model } = mongoose;
const categorySchema = new Schema(
{name: String,
position:Number
},
{
timestamps: true
}
);
const Category = model("Category", categorySchema);
Создайте какой-нибудь экземпляр, используя эту модель
const category1 = new Category({name:'Nodejs',position:1});
await category1.save();
const category2= new Category({name:'Reactjs',position:2});
await category2.save();
const category3 = new Category({name:'Vuejs':position:3});
await category3.save();
Теперь, если я сделаю запрос через модель категории, он вернет массивкатегорий выглядит следующим образом
const categories = await Category.find().sort({position:1});
categories // [{name:'Nodejs'},{name:'Reactjs'},{name:'Vuejs'}]
Так что, если мне нужно переместить позицию категорий, я изменю значение позиции
await Category.findOneAndUpdate({name:'Nodejs'},{$set:{position:2}})
await Category.findOneAndUpdate({name:'Reactjs'},{$set:{position:1}})
Теперь позиция документов массива категорий была изменена
const categories = await Category.find().sort({position:1});
categories // [{name:'Reactjs'},{name:'Nodejs'},{name:'Vuejs'}]
Когда пользователю необходимо изменить положение / порядок категории, пользователь может изменить значение позиции для категорий
Есть ли лучший способ сделать это?