- 连接mongodb
- 创建集合规则
- 使用集合规则创建集合
- 使用find方法查询文档
//1.连接mongodb
//引用第三方模块 mongoose
const mongoose = require('mongoose');
//链接服务器 返回promise 对象
mongoose.connect('mongodb://localhost/api', {
useUnifiedTopology: true,
useNewUrlParser: true
})
.then(() => console.log('数据库链接成功'))
.catch((err) => console.log(err));
//2.创建集合规则
const userSchema = new mongoose.Schema({
name: String,
age: Number,
hobbies: Array,
emaill: String,
password: String
})
//3.创建集合
const user = mongoose.model('user', userSchema); //couerse
//4.使用find方法查询文档
user.find().then(doc => {
console.log(doc);
});
find方法返回一个promise对象可以用then方法查看查询结果
结果返回一个数组
find中的参数
//find中的参数
//参数为空则查询所有文档
user.find().then(doc => {
console.log(doc);
});
//指定id查询 若该id不存在则返回空数组
user.find({_id:5c09f236aeb04b22f8460967}).then(doc => {
console.log(doc);
});
筛选查询(参数类)
//匹配大于20且小于40的
//$gt匹配大于 $lt匹配小于
user.find({age:{$gt:20,$lt:35}}).then(doc => {
console.log(doc);
});
//$in匹配包含 可以是多个项
user.find({hobbies:{$in:['code']}}).then(doc => {
console.log(doc);
});
//
筛选查询(方法类)
1.select方法查询
//只显示名字和email 前面加个-使他不显示 空格隔开
user.find().select('name email -_id').then(doc => {
console.log(doc);
});
2.sort 顺序显示
//根据年龄进行排序
user.find().sort('age').then(doc => {
console.log(doc);
});
3.skip跳过多少数据 limit 限制查询数量
//跳过前两个 只查询两个
user.find().skip(2).limit(2).then(doc => {
console.log(doc);
});
findOne查询一个文档
`
//findOne返回一条文档 默认返回集合中的第一条
//findOne 返回的是对象 find返回的是数组
user.findOne().then((doc)=>{console.log('doc')});