本篇文章英文文档地址 https://docs.mongodb.com/manual/reference/mongo-shell/
1,command line options
--help :查看mongo在命令行中可以使用的选项
--nodb:启动一个mongo shell 但是并不连接数据库
--shell:启动一个mongo shell
2,command help
help:查看帮助
db.help():查看数据库上能够使用的方法
db.<collection>.help():查看集合上能使用的方法
show dbs:查看当前数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
new 0.000GB
runoob 0.000GB
test 0.000GB
testDB 0.000GB
use <db>:将正在使用的数据库切换到<db>
> use test
switched to db test
show collections:查看当前数据库中的集合
> show collections
orders
ordes
products
show users:查看当前数据库的用户
show roles:查看所有的roles,包括用户自定义的和内建的
show profile:打印5个最近的且花费了超过1ms的操作
show databases:查看数据库
> show databases
admin 0.000GB
config 0.000GB
local 0.000GB
new 0.000GB
runoob 0.000GB
test 0.000GB
testDB 0.000GB
load():运行一个javascript文件
3,Basic Shell JavaScript Operations
db.auth():如果运行在安全模式,对用户进行身份验证
coll = db.<collection>:将游标切换到数据库中的<collection>
db.collection.find():返回数据库中所有的文档,并且返回一个光标
> db.getCollection("ordes").find()
{ "_id" : 1, "product_id" : 154, "status" : 1 }
db.collection.insertOne():向数据库的集合中插入一条数据
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost",function(err,db){
dbo = db.db("test");
obj = {id:"1112",name:"xiaobaicai"}
dbo.collection("products").insertOne(obj,function(err,res){
if(err)throw err;
console.log("数据插入成功");
db.close();
});
});
db.collection.insertMany():向数据库中插入多条数据
db.collection.updateOne():更新数据库中的一条数据
var MongoClient = require('mongodb').MongoClient;
var url="mongodb://localhost:27017/";
MongoClient.connect(url,function(err,db){
if (err) throw err;
var dbo = db.db("runoob");
var whereStr = {name:"白菜"};
var updateStr = {$set:{url:"new xiaobaicai.fun"}};
dbo.collection("site").updateOne(whereStr,updateStr,function(err,res){
if(err)throw err;
console.log("文档更新成功");
db.close();
});
});
db.collection.updateMany():更新数据库中的多条数据
db.collection.save():插入,或者更新一条数据。
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost",function(err,db){
dbo = db.db("test");
obj = {id:"1112",name:"hello"}
dbo.collection("products").save(obj,function(err,res){
if(err)throw err;
console.log("数据插入成功");
db.close();
});
});
db.collection.deleteOne():从集合中删除一条数据
var MongoClient = require('mongodb').MongoClient;
MongoClient.connect("mongodb://localhost",function(err,db){
dbo = db.db("test");
obj = {id:"1112",name:"hello"}
dbo.collection("products").deleteOne(obj,function(err,res){
if(err)throw err;
console.log("数据删除成功");
db.close();
});
});
db.collection.deleteMany():从集合中删除多条数据
db.collection.drop():删除该集合
db.collection.createIndex():从集合中创建索引
db.getSiblingDB():使用当前的连接连接到另一个数据库
3,queries
db.collection.find(<query>):查找满足query的数据
> db.getCollection("products").find({"name":"xiaobaicai"})
{ "_id" : ObjectId("5b07ab43a9f106ce6ce1227c"), "id" : "1111", "name" : "xiaobaicai" }
db.collection.find(<query>,<projection>):查找满足query的数据
db.collection.find().sort(<sorted>):查找 并按照sorted中的规则进行排序
db.collection.find().limit(<n>):查找,并只返回前n个符合要求的数据
db.collection.find().skip(<n>):查找,并跳过找到的前n个数据
> db.getCollection("products").find().limit(2)
{ "_id" : 154, "name" : "笔记本电脑" }
{ "_id" : 155, "name" : "耳机" }
> db.getCollection("products").find().skip(2)
{ "_id" : 156, "name" : "台式电脑" }
{ "_id" : ObjectId("5b07ab43a9f106ce6ce1227c"), "id" : "1111", "name" : "xiaobaicai" }
{ "_id" : ObjectId("5b07abbaff6004f4cc35e72b"), "id" : "1112", "name" : "xiaobaicai" }
{ "_id" : ObjectId("5b07ac26462e1df41855a47f"), "id" : "1112", "name" : "xiaobaicai" }
db.collection.count():返回当前集合中数据的数目
> db.getCollection("products").count()
6
db.collection.find(<query>).count():返回匹配<query>的数据的数量
db.collection.findOne(<query>):返回第一个匹配<query>的数据
4,Administrative Command Helpers
db.cloneDatabase(<host>):将当前数据库克隆到<host>,<host>数据库实例必须是运行在noauth模式中。
db.copyDatabase(<from>,<to>,<host>):复制数据库
db.fromcoll.renameCollection(<tocoll>):重命名集合
db.getCollectionNames():获得当前数据库中的集合名
> db.getCollectionNames()
[ "orders", "ordes", "products", "system.profile" ]
db.dropDatabase():删除当前数据库