Как изменить положение документов MongoDB / Mongoose? - PullRequest
1 голос
/ 29 июня 2019

Я не являюсь носителем английского языка.Так что простите мои грамматические ошибки

В 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'}]

Когда пользователю необходимо изменить положение / порядок категории, пользователь может изменить значение позиции для категорий

Есть ли лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...