MongoDB学习总结5(数据查询1)

数据操作前,需要先开启MongoDB服务,并建立链接。

开启服务

mongod

建立链接

mongo

先向集合中添加一些数据,为下面查询数据做好铺垫。

demo1.js

var workmate1 = {
    name: 'JSPang',
    age: 33,
    sex: 1,
    job: '前端',
    skill: {
        skillOne: 'HTML+CSS',
        skillTwo: 'JavaScript',
        skillThree: 'PHP'
    },
    regeditTime: new Date(),
    interest: []
}
var workmate2 = {
    name: 'ShengLei',
    age: 31,
    sex: 1,
    job: 'JAVA后端',
    skill: {
        skillOne: 'HTML+CSS',
        skillTwo: 'J2EE',
        skillThree: 'PPT'
    },
    regeditTime: new Date(),
    interest: []
}
var workmate3 = {
    name: 'MinJie',
    age: 18,
    sex: 0,
    job: 'UI',
    skill: {
        skillOne: 'PhotoShop',
        skillTwo: 'UI',
        skillThree: 'PPT'
    },
    regeditTime: new Date(),
    interest: []
}
var workmate4 = {
    name: 'XiaoWang',
    age: 25,
    sex: 1,
    job: 'UI',
    skill: {
        skillOne: 'PhotoShop',
        skillTwo: 'UI',
        skillThree: 'PPT'
    },
    regeditTime: new Date(),
    interest: []
}
var workmate5 = {
    name: 'LiangPeng',
    age: 28,
    sex: 1,
    job: '前端',
    skill: {
        skillOne: 'HTML+CSS',
        skillTwo: 'JavaScript',
    },
    regeditTime: new Date(),
    interest: []
}
var workmate6 = {
    name: 'HouFei',
    age: 25,
    sex: 0,
    job: '前端',
    skill: {
        skillOne: 'HTML+CSS',
        skillTwo: 'JavaScript',
    },
    regeditTime: new Date(),
    interest: []
}
var workmate7 = {
    name: 'LiuYan',
    age: 35,
    sex: 0,
    job: '美工',
    skill: {
        skillOne: 'PhotoShop',
        skillTwo: 'CAD',
    },
    regeditTime: new Date(),
    interest: []
}
var workmate8 = {
    name: 'DingLu',
    age: 20,
    sex: 0,
    job: '美工',
    skill: {
        skillOne: 'PhotoShop',
        skillTwo: 'CAD',
    },
    regeditTime: new Date(),
    interest: []
}
var workmate9 = {
    name: 'JiaPeng',
    age: 29,
    sex: 1,
    job: '前端',
    skill: {
        skillOne: 'HTML+CSS',
        skillTwo: 'JavaScript',
        skillThree: 'PHP'
    },
    regeditTime: new Date(),
    interest: []
}
var workmate10 = {
    name: 'LiJia',
    age: 26,
    sex: 0,
    job: '前端',
    skill: {
        skillOne: 'HTML+CSS',
        skillTwo: 'JavaScript',
        skillThree: 'PHP'
    },
    regeditTime: new Date(),
    interest: []
}
var db = connect('company');
var workmateArray = [workmate1, workmate2, workmate3, workmate4, workmate5, workmate6, workmate7, workmate8, workmate9, workmate10];
db.workmate.insert(workmateArray);

在vscode终端中执行 load('./demo1.js') 即可将上面的数据插入到数据库名称为company,名称为workmate的集合中。

实例一:查询出skillOne为HTML+CSS的name和skillOne字段信息:

db.workmate.find({ "skill.skillOne": "HTML+CSS" }, { name: true, "skill.skillOne": true, "_id": false })

执行结果:

 true(1)表示查询该字段,false(0)表示不查询该字段。

实例二:查询出年龄在25-30之间的数据(包含25和30)

db.workmate.find({ age: { $gte: 25, $lte: 30 } }, { name: true, age: true, "_id": false })

执行结果:

这里使用到了大小判断的关键字:

小于($lt):英文全称less-than

小于等于($lte):英文全称less-than-equal

大于($gt):英文全称greater-than

大于等于($gte):英文全称greater-than-equal

不等于($ne):英文全称not-equal

实例三:查找注册日期大于2021年8月1日的数据:

var findData = new Date('01/08/2021');

db.workmate.find({ regeditTime: { $gt: findData } }, { name: true, regeditTime: true, "_id": false })

先声明一个日期的变量,在查找时将变量传入进去,进行查询。

执行结果:

实例四:查找年龄在25, 30, 33的数据(类似于关系型数据库的in查询):

db.workmate.find({ age: { $in: [25, 30, 33] } }, { name: 1, age: 1, _id: 0 })

执行结果:

 $in修饰符查询数据在某个范围的数据。

 实例四:查找年龄不在25, 30, 33的数据(类似于关系型数据库的not in查询):

 db.workmate.find({ age: { $nin: [25, 30, 33] } }, { name: 1, age: 1, _id: 0 })

 执行结果:

$nin修饰符查询数据不在某个范围的数据。

实例五:查找年龄大于等于30 或者 会PHP的:

db.workmate.find({ $or: [{ age: { $gte: 30 } }, { "skill.skillThree": "PHP" }] }, { name: 1, age: 1, "skill.skillThree": 1, _id: 0 })

 执行结果:

$or修饰符,它用来查询多个键值的情况(类似于关系型数据库中的or)。

实例六:查找年龄大于等于30 并且 会PHP的:

db.workmate.find({ $and: [{ age: { $gte: 30 } }, { "skill.skillThree": "PHP" }] }, { name: 1, age: 1, "skill.skillThree": 1, _id: 0 })

执行结果:

$and修饰符,用来查找几个key值都满足的情况(类似于关系型数据库中的and)

实例七:查找年龄不在20-30范围内的记录:

db.workmate.find({ age: { $not: { $gte: 20, $lte: 30 } } }, { name: 1, age: 1, "skill.skillThree": 1, _id: 0 })

执行结果:

$not修饰符,它用来查询除条件之外的值。

猜你喜欢

转载自blog.csdn.net/liangmengbk/article/details/119842714