在linux上远程链接mongodb客户端。进入mongodb的bin目录下面,输入./mongo即可进入。
参考:https://docs.mongodb.com/manual/
1.创建数据库
use [databaseName]
2.查看所有数据库
show dbs 或者show databases
3.选择指定的数据库test,并进入到数据库
use test
4.给指定的数据库集合添加一条记录(一个文档)
db.<collection>.insert({...});
或
db.<collection>.insertOne({...}); 3.2版本以上
例如:db.test.insert({"no":"1000001","name":"cluo"});
db.test.insertOne({"no":"100004","name":"lml"});
5.给指定的数据库集合添加多条记录(多个文档)
db.<collection>.insert([{...},{...},{...}]);
或
db.<collection>.insertMany([{...},{...}]); 3.2版本以上
例如:db.test.insert([{"no":"100002","name":"zhangsan"},{"no":"100003","name":"lisi"}]);
db.test.insertMany([{"no":"100005","name":"zxl"},{"no":"100006","name":"wzc"}]);
6.生成文档的唯一标识
ObjectId()
7.查看数据库中的所有文档
show collections;
8.查询定制的文档数据
查询所有:db.<collection>.find();
查询第一条数据:db.[documentName].findOne();
9.查询带条件的数据
db.<collection>.find({"id":"100001"}); 查询id为100001的数据
db.<collection>.find({"age":"20"})[0]; 查询age为20的第一条数据
db.<collection>.find({}).count(); 统计记录的条数
10.更新文档的数据,修饰符$set用来修改文档中的指定属性
db.<collection>.update({匹配条件},{$set:{更新的内容}});
或者
db.<collection>.updateOne({匹配条件},{$set:{更新的内容}});
例如: db.test.update({"no":"100005"},{$set:{"name":"张三"}}); 将编号为100005的姓名改为张三。
update默认只会修改符合条件的第一条记录。如果要修改多条记录:
语法:db.<collection>.updateMany({匹配条件},{$set:{更新的内容}});
或者
multi:是否修改多个
db.test.update({"no":"100002"},{$set:{"name":"lisi"}},{multi:true});
db.<collection>.updateMany({"no":"100001"},{$set:{"name":"李四"}});
11.修饰符$unset可以用来删除文档中的指定属性
db.test.update({"no":"100005"},{$unset:{name:1}}); //删除name属性
12.删除文档
db.<collection>.remove({条件}); //删除符合条件的所有文档,如果remove()第二个参数传递一个true,则只会删除一个。如果传递一个空对象作为参数,则会删除集合中的所有文档。
例:db.test.remove({"id":"100001"});
db.<collection>.deleteOne({条件}); //只删除一条文档记录
db.<collection>.deleteMany(); //删除多条文档记录
13.删除集合
db.<collection>.drop(); //删除集合
14.删除数据库
db.dropDatabase(); //删除数据库
15.替换文档内容
db.<collection>.replaceOne({原数据},{新数据});
16.MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档则可以通过 . 的形式来匹配
如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号。
db.test.insert({"id":"1000001","no":"Xz0001","hobby":{"cities":["beijin","shanghai","wuhan"],"movies":["hero","today","love"]}});
db.test.find({"hobby.movies":"hero"});
17.向数组中添加元素,使用$push或$addToSet
区别:$addToSet 如果数组中已经存在了该元素,则不会添加
db.test.update({"id":"1000001"},{$push:{"hobby.movies":"tomorrow"}});
18.批量添加数据(性能)
var arr=[];
for(var i=0;i<20000;i++){
arr.push({num:i});
}
db.test.insert(arr);