MongoDB语法速查

近几天接手维护的项目采用MongDB作为数据库。速度学习了一下用法,记录一下。

数据库操作

进入/创建数据库

1
use myDatabase;

删除数据库

1
db.dropDatabase('myDatabase');

集合操作

创建集合

1
db.createCollection('myCollection');

删除集合

1
db.myCollection.drop();

清空集合

1
2
db.myCollection.remove({}); // outdated
db.myCollection.deleteMany({});

增删改查文档

查询文档

1
2
3
4
5
6
7
8
9
10
11
// 查找 id = 1 的一个数据
db.myCollection.findOne({id: 1});

// 查找 id = 1 的一个数据的name字段
db.myCollection.findOne({id: 1}).name;

// 查找 id > 3 的所有数据
db.myCollection.find({id: {$gt: 3}});

// 查找 id > 10 并且 name == 'John'的所有数据
db.myCollection.find({id: {$gt: 10}, name: 'John'});

插入文档

1
2
3
4
5
6
// 插入一个数据
db.myCollection.insertOne({id: 1, name: 'Julia'});

// 插入多个数据
// 注意,id 可以重复,但是后端程序不一定这样认为,就会报错
db.myCollection.insertOne({id: 1, name: 'Ruby'}, {id: 1, name: 'Sapphire'});

更新文档

1
2
3
4
5
6
7
8
9
// 将 id > 5 的文档的 name 字段都设为 'Julia'
db.myCollection.update(
{
id: { $lt: 5 }
},
{
$set: { name: 'Julia' }
}
);

删除文档

1
2
3
4
5
// 删除一个 id = 1 的文档
db.myCollection.deleteOne({id: 1});

// 删除所有 id > 10 的文档
db.myCollection.deleteMany({id: {$gt: 10}});

没了

0条搜索结果。