先创建一张用于测试的表,存入id,name,age,gender,date字段
表名 t_test
id name age gender date
1 张三 18 male 2019-07-10 00:00:00
2 李四 26 female 2018-06-19 09:00:00
3 王五 20 female 2018-08-09 09:40:00
4 麻子 20 male 2019-08-09 15:09:30
5 张飞 29 male 2019-08-09 15:09:30
一、查询
db.collection.find(query, projection)
query
:可选,使用查询操作符指定查询条件projection
:可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
db.getCollection('t_test').find({}) 或者 db.es_member.find({})
-
条件查询 where
SQL:SELECT * FROM t_test WHERE gender = "male"; MongoDB : db.getCollection('t_test').find({"gender":"male "})
-
以时间作为条件 查询2018年9月5日之前的数据
db.getCollection('t_test').find({"date":{"lte":ISODate("2018-09-05T00:00:00.000Z")}})
-
多条件查询(条件中间用逗号隔开 )
and
SQL:SELECT * FROM t_test WHERE gender = "male" and age="20"; MongoDB : db.getCollection('t_test').find({"gender":"male","age":"20"})
or
select * from t_test where age=20 or name="张三"; db.t_test.find({"$or":[{"age":"20"},{"name":"张三"}]})
in
db.getCollection('es_member').find({"name":{"$in" : ["张三", "李四" ]}})
条件运算符
(>) 大于 - $gt (<) 小于 - $lt (>=) 大于等于 - $gte (<= ) 小于等于 - $lte != 不等于 $ne
select * from t_test where age >= 20; db.t_test.find({"age":{"$gte":20}})
-
模糊查询 like
--查询name包含 “张”的数据 SQL: SELECT * FROM t_test WHERE name LIKE "%张%" MongoDB: db.t_test.find({name:/张/}) --查询name 以“张”开头的数据 SQL: SELECT * FROM t_test WHERE name LIKE "张%" MongoDB: db.t_test.find({name :/^张/})
-
查询数量 count
db.t_test.find().count()
-
排序 sort() 1代表升序、-1代表降序
db.t_test.find().sort({"date":1})
2、更新
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
:可选,抛出异常的级别。
把名字叫张三的更改为张三丰,年龄改为23岁
SQL:update t_test set age=23,name="张三丰" where name="张三";
db.t_test.update(
{"name":"张三"},
{"$set":{"name":"张三丰"}}
)
批量更新
把张三,李四,王五的年龄改为 50岁
db.getCollection('t_test').update({"name":{"$in" :
["张三",
"李四",
"王五"
]}},{$set:{"age":"50"}},{multi:true})
3、插入
db.collection.insertOne():向指定集合中插入一条文档数据
db.collection.insertMany():向指定集合中插入多条文档数据
insert into t_test id,name,age,date values("6","xuxu","18");
MongoDB: db.t_test.insert({"name":"xuxu","type":"normal"})
4、删除
remove() 方法的基本语法格式如下所示:
db.collection.remove(
<query>,
<justOne>
)
如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
query
:(可选)删除的文档的条件。justOne
: (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值
false,则删除所有匹配条件的文档。writeConcern
:(可选)抛出异常的级别。
db.t_test.remove({"id":"1"})