mongoose是什么?
Mongoose是MongoDB的一个对象模型工具,是基于node-mongodb-native开发的MongoDB nodejs驱动,可以在异步的环境下执行。同时它也是针对MongoDB操作的一个对象模型库,封装了MongoDB对文档的的一些增删改查等常用方法,让NodeJS操作Mongodb数据库变得更加灵活简单。
基本增删改查使用(最近几天用过的一些基本的操作) 中文文档
1.安装mongoose
2.引入mongoose
| const mongoose=requie('mongoose');
|
3.连接本地数据库
|
mongoose.connect('mongodb://localhost:27017/mongo-relation', { useNewUrlParser: true });
|
3.创建集合,以创建一个users集合(即数据库表)为例
|
const Users=mongoose.model('Users',new mongoose.Scema({ name:{ type:String } }));
|
4.插入数据,向users集合中插入2行文档(即数据)
| const insert=async function(){ await Users.insertMany([{ name:'刷新1' },{ name:'shuaxin' }]); console.log('插入成功'); }; insert();
|
5.查找数据
| const find=async function(){ const users=await Users.find(); cosnole.log(users); const findUser=await Users.find().where({ name:'刷新1' }); cosnole.log(findUser); const twoUsers = await Users.find().limit(2); console.log(twoUsers); }; find();
|
6.修改数据
| const updata=async function(){ const target=await Users.find().where({ name:'刷新1' }); target.name='刷新2'; await Users.save(); console.log('修改成功'); }; update();
|
7.删除数据
| const del=aync function(){ const target=await Users.find().where({ name:'刷新2' }); await product.remove(); console.log('删除成功'); }; del();
|
4.集合之间的关联
1.创建一个性别集合(Gender)和用户(Users)集合
2.性别集合插入男(man)和女(woman)属性
3.在用户集合键类型设置时,性别类型性别集合中对应性别的id,ref为指向性别集合
| gender:{type: mongoose.SchemaTypes.ObjectId, ref: 'Gender'}
|
4.插入数据时,先获取性别集合中对应的性别,然后设置
| const man=await Gender.findOne({gender:'男'}); const woman=await Gender.findOne({gender:'女'});
const res=await Users.insertMany([{ name:'刷新', gender:man },{ name:'tao', gender:man },{ name:'guiyi', gender:woman }]);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| const mongoose=require('mongoose'); mongoose.connect('mongodb://localhost:27017/userMsg', { useNewUrlParser: true });
const Gender=mongoose.model('Gender',new mongoose.Schema({ gender:{ type:String } }));
const Users=mongoose.model('Users',new mongoose.Schema({ name:{type:String}, gender:{type: mongoose.SchemaTypes.ObjectId, ref: 'Gender'} }));
const insertGender=async function(){ await Gender.insertMany([{ gender:'男' },{ gender:'女' }]); };
const insertUser=async function(){ const man=await Gender.findOne({gender:'男'}); const woman=await Gender.findOne({gender:'女'}); const res=await Users.insertMany([{ name:'刷新', gender:man },{ name:'tao', gender:man },{ name:'guiyi', gender:woman }]); }; const main=async function(){ const gender=await Gender.find(); const users=await Users.find(); if (gender.length==0) { await insertGender(); console.log('插入成功'); } else { console.log(gender); if(users.length==0){ await insertUser(); console.log('用户插入成功'); }else{ const usersDeatl=await Users.find().populate('gender'); console.log(usersDeatl); }; }; }; main();
|