本文共 2132 字,大约阅读时间需要 7 分钟。
1.1 简介
MongoDB 是一种分布式文件存储数据库,由 C++ 编写,专为 Web 应用提供可拓展的高性能数据存储解决方案。它介于传统关系数据库和 NoSQL 数据库之间,支持灵活的数据结构,类似于 JSON 的 BSON 格式,能够存储复杂数据类型。MongoDB 的查询功能强大,语法类似于面向对象的查询语言,能够实现类似关系数据库单表查询的绝大部分功能,同时支持数据索引。1.2 应用场景
MongoDB 适用于以下场景:1.3 MongoDB 的优势
MongoDB 的内存映射机制提高了 IO 操作效率,数据模型的灵活性减少了关联性,分布式集群支持了大规模并发请求。相比 MySQL,MongoDB 在读写性能上更具优势。1.4 数据库概念
2.1 查看所有库
show databases;
或 show dbs
命令可列出所有库,默认数据库为 test
。 2.2 创建并使用数据库
use dbname;
创建并切换到指定数据库。 2.3 查看当前数据库
默认连接的数据库为test
,可以使用 db
命令查看当前数据库。 2.4 删除数据库
db.dropDatabase();
删除当前数据库。 3.1 创建集合
db.createCollection('集合名', [options]);
可选参数包括 capped
、size
和 max
。 3.2 查看库中集合
show collections;
或 show tables;
命令可查询集合。 3.3 删除集合
db.集合名称.drop();
删除指定集合。 4.1 插入文档
单条文档:db.集合名称.insert({"name": "cyk", "age": 20});
多条文档:db.集合名称.insertMany([ { "name": "cyk0", "age": 20 }, { "name": "cyk1", "age": 20 } ]);
4.2 删除文档
db.集合名称.remove(query, {justOne: true});
可选参数包括 query
和 justOne
。 4.3 更新文档
db.集合名称.update(query, update, {upsert: true, multi: true});
可选参数包括 query
、update
、upsert
和 multi
。 4.4 查询文档
db.集合名称.find(query, projection);
查询条件和投影操作可通过 pretty()
格式化显示。 5.1 基本查询
db.集合名称.find(query);
可选投影操作。 5.2 查询条件示例
db.user.find({name: "cyk0"})
db.user.find({_id: {$lt: 5}})
db.user.find({age: {$ne: 5}})
db.user.find({$or: [{name: "cyk1"}, {name: "cyk2"}]})
db.user.find({likes: /钢/})
db.user.find().sort({_id: -1})
db.user.find().skip(3).limit(3);
db.user.distinct('name');
db.user.find({_id: {$gt: 5}}, {name: 1});
5.3 模糊查询
通过正则表达式实现模糊查询。5.4 排序和分页
db.user.find().sort({_id: -1});
db.user.find().skip(3).limit(3);
5.5 去重
db.user.distinct('name');
5.6 指定字段返回
db.user.find({_id: {$gt: 5}}, {name: 1});
db.user.find({_id: {$gt: 5}}, {name: 0});
$type 操作符用于基于 BSON 类型检索数据。支持数据类型包括 String、Integer、Boolean、Double、Array、Timestamp、Object、Null、Symbol、Date、ObjectId、Binary Data、Code、Regular Expression 等。
转载地址:http://gdffk.baihongyu.com/