下面是我整理了关于mongodb数据表命令行操作数据的插入、修改、删除、求和、最大值、最小值、平均值、排序、分片查询、in和or等用法的查询
在查询指定数据库表的情况下我们可以使用 show collections
查询全部数据可以使用find()方法查询
查询数据库表中的数据条数,带查询条件统计数量:db.sidcust.count({"age":{$gte:23,$lte:28}}); 全部:db.sidcust.count();
查询要返回的指定字段,排除不需要的字段显示:0代表不显示,默认是不显示,:1代表显示例如
我们的数据结构是每个会员有一个关于车辆的内嵌数组数据结构如下
下面我们查询id类型为1的,cards数组中qy数量为6的会员 如果查询qy为3和6的话,更改qy:{$in:[3,6]}但是使用not in的写法 $nin不可用筛选数据内部数据列表无效,查询内嵌方法简写:
db.sidcust.find({"cards.qy":{$in:[3,6]}},{name:1,age:1,cards:1,_id:0});
查询符合条件的数据只获取其中一条的话可以使用db.sidcust.findOne();
查询数字类型的大于小于操作,下面举例查询大于23岁的会员信息gt(大于) 、lt(小于) 、gte(大于等于) 、lte(小于等于)
关于经常用到的分页查询的两个方法limit和跳过指定条数
在MongoDB中,db.collection.insert()方法添加一个新文档到集合中。另外,db.collection.update()方法和db.collection.save()方法也能通过upsert操作添加新文档。upsert操作执行更新现有文档或者当文档不存在时插入一个新文档
db.sidcust.insert({"id":"4","name":"sission","age":28,"create":Date()});
db.sidcust.save({"id":"4","name":"sission","age":28,"create":Date()});
db.sidcust.update({"id":{$gt:"0"}},{ $set : {"create":Date()}},true,true)
update方法倒数第二个true是代表如果数据不存在则插入一条新数据
mongodb更新文档方法upate主要有四个参数,参数一是查询要更新的条件,参数二是要更新的字段集合一定要使用$set:{更新的集合key:value}否则会把整条数据更新成新的字段值,参数三是默认是false代表数据不存在是是否插入新的数据,参数4是更新所有符合条件的数据
更新年龄>23岁的会员db.sidcust.update({"age":{$gt:23}},{ $set : {"create":Date()}},true,true)
mongodb删除文档数据可删除符合条件的所有数据,也可只删除符合条件的一条数据,根据第二个参数默认为false删除全部
- justOne : (可选)如果设为 true 或 1,则只删除一个文档。
- db.sidcust.remove({'name':'MongoDB 教程'},1)
db.sidcust.remove({"_id":ObjectId("5a5ef5d8aca4974ac029bd7b")});
mongodb查询数据集合根据某个字段排序sort 语法如下 1代表升序排列,-1代表降序排列
mongodb查询多个年龄的会员in方法的使用
mongodb查询A或者B的使用方式db.sidcust.find({"age":{$gte:23,$lte:28}});
mongodb查询数据字段求和可带条件筛选
不带条件筛选求和age字段的总和如:db.sidcust.aggregate({$group: {_id: null,sumage:{$sum:"$age"}}});
条件筛选id为1的年龄为28的会员的所有年龄总和如下:
db.sidcust.aggregate( [
{ $match : { id :"1","age":28}},
{ $group: { _id: null, sumage: { $sum:"$age"} } }
] );
查询指定条件下的某个字段的最大值和最小值根据下图进行筛选
筛选id为1的会员中年龄最小的年龄如下
筛选id为1的会员中年龄最大的年龄如下
筛选id为1的会员中年龄平均的年龄如下
查询id为1的年龄为23的会员求和他们的总年龄、平均年龄、人数
mongodb时间插入和查询操作db.sidcust.insert({"id":"4","name":"ali","age":28,"create":Date()}); new Date() ISODate() 时间也可以直接在括号内写入具体的日期关于日期查询的话可以使用以下时间区间查询方法,如果按照第一种插入Date()的方式的时间格式为:"Thu Jan 16 2018 19:30:35 GMT+0800" new Date()和new ISODate()格式为:ISODate("2018-01-15T11:30:16.084Z")查询14号到17号的会员信息