Mongodb增删改查(insert - remove - update - find)操作及常用命令实例

发布时间:2018-05-06 编辑:小张个人博客 查看次数:4146

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案,主要介绍MongoDB数据库增删改查操作及常用命令。

Mongodb-入门命令

启动Mongodb数据库

D:\MongoDB\bin>mongod --dbpath d:\MongoDB\data\db

首先连接Mongodb数据库

./bin/mongo

use databaseName 选库

show tables/collections 查看当前库下的collection

如何创建库

Mongodb的库是隐式创建,你可以use 一个不存在的库

然后在该库下创建collection,即可创建库

// 创建user
db.createCollection("user")

// collection允许隐式创建
Db.collectionName.insert(document);

删除collection/database

db.collectionName.drop();

db.dropDatabase();

查询所有数据库

show dbs;

查看当前使用的数据库

db.getName(); 
db;

显示当前db状态

db.stats();

当前db版本

db.version();

修复当前数据库

db.repairDatabase();

Mongodb-CURD操作

Mongodb-增加(insert()

mongodb存储的是文档,文档是json格式的对象

db.user.insert({_id:'1',name:"xiaozhang"});
db.user.insert({_id:"2",name:"wukong3",sex:"男",age:90});

Mongodb-删除(remove()

db.user.remove({_id:"1"});

删除user表中age属性为20的文档,只删除1行

db.user.remove({age:’20’,true});

注意

1: 查询表达式依然是个json对象

2: 查询表达式匹配的行,将被删掉.

3: 如果不写查询表达式,collections中的所有文档将被删掉.

Mongodb-修改(update()

$set 修改某列的值

db.user.update({name:"xiaoxiao"},{$set:{name:"xiaozhang"}});

Mongodb-修改

$rename 重命名某个列

db.user.update({name:'wukong2'},{
$rename:{name:'usernaem'}, //重命名某个列
$inc:{age:30} //增长某个列
});

Mongodb-修改

修改时的赋值表达式

$set  修改某列的值

$unset 删除某个列

$rename 重命名某个列

$inc 增长某个列

$setOnInsertupserttrue时,并且发生了insert操作时,可以补充的字段.

upsert:是指没有匹配的行,则直接插入该行.(和mysql中的replace一样)

db.user.update({username:"xiaoxiao"},{$set:{username:'xiaosan'}},{upsert:true});

Mongodb-upsert

multi: 是指修改多行(即使查询表达式命中多行,默认也只改1行,如果想改多行,可以用此选项)

db.user.update({age:90},{$set:{age:22}},{multi:true});


mongodb-multi

Mongodb-查询知识

注:以下查询基于ecshop网站的商品表(ecs_goods)

在练习时可以只取部分列,方便查看.

查询运算符(mongodb vs mysql)

$gt      >
$gte     >=
$in      in
$lt      <
$lte     <=
$ne      !=
$nin     not in
$all    无对应项,指数组所有单元匹配
$or      or
$and     and
$not     not

查询主键为32的商品

db.goods.find({goods_id:32});

查询不属于第3个栏目的商品{$ne}

db.goods.find({cat_id:{$ne:3}},{cat_id:1,goods_id:1,goods_name:1});

本店价格高于3000元的商品{$gt}

db.goods.find({shop_price:{$gt:3000}},{goods_id:1,goods_name:1,shop_price:1});


查询小于等于100的商品

db.goods.find({shop_price:{$lte:100}},{goods_id:1,goods_name:1,shop_price:1});

查询小于等于100的商品

取出第4栏目和第11栏目下的商品($in)

db.goods.find({cat_id:{$in:[4,11]}},{cat_id:1,goods_id:1,goods_name:1});

取出价格大于100小于500的商品($and)

db.goods.find({$and:[{shop_price:{$gt:100}},{shop_price:{$lt:500}}]},{goods_name:1,shop_price:1});

取出不属于第3栏目且不属于第11栏目的商品($and $nin$nor分别实现)

db.goods.find({$and:[{cat_id:{$ne:3}},{cat_id:{$ne:11}}]},{cat_id:1,goods_name:1});
db.goods.find({cat_id:{$nin:[3,11]}},{cat_id:1,goods_name:1});
db.goods.find({$nor:[{cat_id:3},{cat_id:11}]},{cat_id:1,goods_name:1});

Mongodb查询-元素运算符

$exists     某列存在则为真
$mod        满足某求余条件则为真
$type       数据为某类型则为真

取出goods_id%5 == 1, 即,1,6,11,..这样的商品

db.goods.find({goods_id:{$mod:[5,1]}},{goods_id:1,goods_name:1});

取出有age属性的文档

db.user.find({age:{$exists:1}},{username:1,age:1});


MongoDB数据库增删改查操作及常用命令就介绍在这里,想深入学习的同学可以到MongoDB官网上看一下MongoDB的文档



出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号