常用命令
- show dbs:查看所有数据库
- show collections /tables:产看当前数据库所有数据集
- use dbName:切换数据库,如果此数据库不存在,mongodb会在需要的时候自己创建。
- db.dropDatabase():删除当前数据库
db.集合名.drop():删除数据集
数据的插入
db.集合名.insert(json):db.mongo_collection.insert({x:1})
数据查询
- db.集合名.find([json]):json可以为空,默认查询当前数据库所有数据集,
db.mongo_collection.find()
返回{ "_id" : ObjectId("56adf58072d6a5434663ff75"), "x" : 1 }
,其中’_id’是mongodb自己生成的字段,在全局范围内不会重复,在分布式的数据库中,一定要有一个全局唯一的字段来进行数据的处理,’_id’也可以自己指定,使用db.mongo_collection.insert({x:2,_id:123})
db.mongo_collection.find({x:1})查询出x为1的结果- mongodb shell是交互式的js shell 因此我们可以直接写
for(i = 3;i<100;i++) db.mongo_collection.insert({x:i})
往集合里插入多条数据
- db.mongo_collection.find().count()
输出记录数- 另外对于find()后的结果集还有这几个方法:
skip(num):跳过num个记录
limit(num):限制输出num条记录
sort(condition):根据condition进行排序
explain():查看执行计划
例如db.mongo_collection.find().skip(3).limit(2).sort({x:1})
对查询结果每隔三条记录只输出前两条并根据x排序
数据更新
- db.集合名.update(json1,json2):db.mongo_collection.update({x:1},{x:99}),只更新找到的第一条数据,是为了防止update的误操作
有这样一个例子:db.mongo_collection.insert({x:100,y:100,z:100})
然后对这条数据更新,以z=100为条件,将y更新成99
如果直接写db.mongo_collection.update({z:100},{y:99})会将整条数据更新为y:99
在这需要使用局部操作符set(set前面有个美元符号),db.mongo_collection.update({z:100},
{$set:{y:99}})- db.集合名.update(json1,json2,true):当更新一条不存在的一条数据时,会插入这条数据json2,第三个参数upsert=true
- db.集合名.update(json1,json2,false,true),多条数据更新,设置第四个参数multiupdate=true,同时为了防止误操作要求json2只能使用局部操作符$set
数据删除
db.集合名.remove(json):为防止误操作删除操作必须接收参数,与update不同,remove会默认删除所有查询到的结果
接下来是关于索引的操作