首页 > 数据库 > MongoDB > 正文

MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码

2020-10-29 18:49:35
字体:
来源:转载
供稿:网友

MongoDB简介

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

下面给大家介绍MongoDB查询文档操作的实例

先把student删除,再重新插入数据

> db.student.drop()true> db.student.insert([{ "_id" : 1, "name" : "zhangsan", "age": 27, "sex": 1 }, { "_id" : 2, "name" : "lisi", "age": 27 } ,{ "_id" : 3, "name" : "wangwu", "age": 30 }, { "_id" : 4, "name" : "zhaoliu", "age": 28 }, { "_id" : 5, "name" : "qianliu", "age": 33 }, { "_id" : 6, "name" : "sunba", "age": 32 }])BulkWriteResult({"writeErrors" : [ ],"writeConcernErrors" : [ ],"nInserted" : 6,"nUpserted" : 0,"nMatched" : 0,"nModified" : 0,"nRemoved" : 0,"upserted" : [ ]})> db.student.find(){ "_id" : 1, "name" : "zhangsan", "age" : 27 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

1、查询指定键

db.集合名称.find({查询条件},{指定键})

指定键:1表示显示,0表示不显示,_id默认显示

> db.student.find({},{name:1}){ "_id" : 1, "name" : "zhangsan" }{ "_id" : 2, "name" : "lisi" }{ "_id" : 3, "name" : "wangwu" }{ "_id" : 4, "name" : "zhaoliu" }{ "_id" : 5, "name" : "qianliu" }{ "_id" : 6, "name" : "sunba" }> db.student.find({},{_id:0, age:0}){ "name" : "zhangsan", "sex" : 1 }{ "name" : "lisi" }{ "name" : "wangwu" }{ "name" : "zhaoliu" }{ "name" : "qianliu" }{ "name" : "sunba" }> db.student.find({},{_id:0, name:1}){ "name" : "zhangsan" }{ "name" : "lisi" }{ "name" : "wangwu" }{ "name" : "zhaoliu" }{ "name" : "qianliu" }{ "name" : "sunba" } 

2、各种查询方式

$lt:<$lte:<=$gt:>$gte:>=$ne:!=> db.student.find({age:{$lt:30}}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }> db.student.find({age:{$ne:27}}){ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

$in:包含

$nin:不包含

> db.student.find({age:{$in:[27,28]}}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }> db.student.find({age:{$nin:[27,28]}}){ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

$or:或者

> db.student.find({$or:[{age:{$lt:29}}, {name:"sunba"}]}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

null:空值

> db.student.find({sex: null}){ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 } 

$type:键是某种类型的

double:1
string:2
...

> db.student.insert({_id:7, name:7, age:70})WriteResult({ "nInserted" : 1 })> db.student.find({name: {$type: 2}}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }> db.student.find({name: {$type: 1}}){ "_id" : 7, "name" : 7, "age" : 70 } 

正则表达式

> db.student.find({name: /si/b/}){ "_id" : 2, "name" : "lisi", "age" : 27 } 

db.集合名称.findOne({查询条件},{指定键})
查询出符合条件的第一条数据

> db.student.findOne(){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 } 

db.集合名称.find({查询条件},{指定键}).limit(数字)
查询前几条数据

> db.student.find().limit(3){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 } 

db.集合名称.find({查询条件},{指定键}).skip(数字)
跳过前几条数据

> db.student.find().skip(2){ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 7, "name" : 7, "age" : 70 } 

可以使用limit()和skip()实现分页

> db.student.find().skip(0).limit(3){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }> db.student.find().skip(3).limit(3){ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 6, "name" : "sunba", "age" : 32 }> db.student.find().skip(6).limit(3){ "_id" : 7, "name" : 7, "age" : 70 } 

db.集合名称.find().sort({键:数字})
数字为1表示升序,数字为2表示降序

> db.student.find().sort({age:1}){ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 7, "name" : 7, "age" : 70 }> db.student.find().sort({age:1, _id:-1}){ "_id" : 2, "name" : "lisi", "age" : 27 }{ "_id" : 1, "name" : "zhangsan", "age" : 27, "sex" : 1 }{ "_id" : 4, "name" : "zhaoliu", "age" : 28 }{ "_id" : 3, "name" : "wangwu", "age" : 30 }{ "_id" : 6, "name" : "sunba", "age" : 32 }{ "_id" : 5, "name" : "qianliu", "age" : 33 }{ "_id" : 7, "name" : 7, "age" : 70 } 

以上内容是小编给大家介绍的MongoDB快速入门笔记(四)之MongoDB查询文档操作实例代码,希望对大家有所帮助!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表