我不是英语母语人士。所以请原谅我的语法错误
在Mongoose中, Model.find()将返回一个文档数组,在这里我需要根据用户需要更改文档在数组中的位置。
为此,我编写了流畅的代码 请检查我的代码,并告诉我我的方法可以
如果可以的话,请分享一个更好的想法来进行此类操作
我正在使用猫鼬模式
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'}]
当用户需要更改类别位置/顺序时,可以更改类别的位置值
还有更好的方法吗?