MongoDB 基础(二):MongoDB 集合与文档操作命令

在这里插入图片描述


MongoDB 数据库常用命令

1. Help查看命令提示
help
db.help()
db.test.help()
db.test.find().help()
2. 创建/切换数据库
> use music
switched to db music
3. 查询数据库
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
4. 查看当前使用的数据库
> db
music
# 或
> db.getName()
music
5. 显示当前DB状态
> db.stats()
{
    
    
	"db" : "music",
	"collections" : 0,
	"views" : 0,
	"objects" : 0,
	"avgObjSize" : 0,
	"dataSize" : 0,
	"storageSize" : 0,
	"totalSize" : 0,
	"indexes" : 0,
	"indexSize" : 0,
	"scaleFactor" : 1,
	"fileSize" : 0,
	"fsUsedSize" : 0,
	"fsTotalSize" : 0,
	"ok" : 1
}
6. 查看当前DB版本
db.version()
7. 查看当前DB的链接机器地址
> db.getMongo()
connection to 127.0.0.1:27017
8. 删除数据库
> db.dropDatabase()
{
    
     "ok" : 1 }

Collection集合操作

1. 创建一个集合
db.createCollection("singer", {
    
    size: 20, capped: true, max: 100});
2. 判断集合是否为定容量
> db.singer.isCapped()
true
3. 得到指定名称的集合
db.getCollection("account")
MongoDB 删除集合
db.collection.drop()
4. 得到当前db的所有集合
> db.getCollectionNames()
[ "album", "singer" ]
5. 显示当前db所有集合的状态
db.printCollectionStats()

文档操作

查询所有记录

> db.singer.find()
{
    
     "_id" : ObjectId("622a15791181c7388318c06f"), "name" : "张三", "age" : 25 }
{
    
     "_id" : ObjectId("622a158d1181c7388318c071"), "name" : "zhangsan", "age" : 25, "sex" : true }
{
    
     "_id" : ObjectId("622a15961181c7388318c072"), "name" : "zhangsan", "age" : 25, "sex" : true }

插入文档

save

> db.singer.save({
    
    name: 'zhangsan', age: 25, sex: '男'})
WriteResult({
    
     "nInserted" : 1 })

> db.singer.find()
{
    
     "_id" : ObjectId("622a158d1181c7388318c071"), "name" : "zhangsan", "age" : 25, "sex" : '男' }

insert

> db.singer.insert([{
    
    name: '老王', age: 40}, {
    
    name: '老李', age: 30}])
BulkWriteResult({
    
    
	"writeErrors" : [ ],
	"writeConcernErrors" : [ ],
	"nInserted" : 2,
	"nUpserted" : 0,
	"nMatched" : 0,
	"nModified" : 0,
	"nRemoved" : 0,
	"upserted" : [ ]
})

> db.singer.find()
{
    
     "_id" : ObjectId("622a17d61181c7388318c077"), "name" : "老王", "age" : 40 }
{
    
     "_id" : ObjectId("622a17d61181c7388318c078"), "name" : "老李", "age" : 30 }
insertOne
> db.singer.insertOne({
    
    name: '李四'})
{
    
    
	"acknowledged" : true,
	"insertedId" : ObjectId("622a16d51181c7388318c075")
}

> db.singer.find()
{
    
     "_id" : ObjectId("622a16bb1181c7388318c074"), "name" : "李四" }
insertMany
> db.singer.insertMany([{
    
    name: '小王', age: 20}, {
    
    name: '小李', age: 20}])
{
    
    
	"acknowledged" : true,
	"insertedIds" : [
		ObjectId("622a18c1e53b1497cfd6d1a3"),
		ObjectId("622a18c1e53b1497cfd6d1a4")
	]
}

> db.singer.find()
{
    
     "_id" : ObjectId("622a18c1e53b1497cfd6d1a3"), "name" : "小王", "age" : 20 }
{
    
     "_id" : ObjectId("622a18c1e53b1497cfd6d1a4"), "name" : "小李", "age" : 20 }

修改文档 update()

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

$set 修改

db.singer.update({
    
    age: 25}, {
    
    $set: {
    
    name: 'changeName'}}, false, true);
# 相当于:
update singer set name = 'changeName' where age = 25;

$inc 增加

db.singer.update({
    
    name: 'Lisi'}, {
    
    $inc: {
    
    age: 50}}, false, true);
# 相当于:
update singer set age = age + 50 where name = 'Lisi';
db.singer.update({
    
    name: 'Lisi'}, {
    
    $inc: {
    
    age: 50}, $set: {
    
    name: 'hoho'}}, false, true);
# 相当于:
update singer set age = age + 50, name = 'hoho'  where name = 'Lisi';

删除文档

db.singer.remove({
    
    age: 132});

猜你喜欢

转载自blog.csdn.net/qq_41887214/article/details/123465890