来源: https://www.runoob.com/mongodb/mongodb-tutorial.html
简要说明:
sql术语 | mongodb术语 | 解释说明 |
---|---|---|
database | database | 数据库 |
table | collection | 数据库表/集合 |
row | document | 数据记录行/文档 |
column | field | 数据字段/域 |
index | index | 索引 |
primary key | _id | 主键 |
两者不同的特点之一,:
mongodb文档(document)的域(field)是动态的,域个数量可以不同, 保存值类型可以任意
而数据库表(table)每行(row)的字段(column)是固定的, 既每row的column数量一直,且column保存类型是固定的.
mongodb基本命令:
show dbs # 查看数据库:
use test # 使用数据库 注: 使用test数据库, 没有的话自动创建
db.dropDatabase() # 删除数据库:
db.createCollection("db_test") # 创建集合
show collections # 查询集合
db.db_test.insert({"name":"luck_hwb"}) # 插入文档 注: sql中的insert 文档就是json对象
-- 查询 begin--
db.db_test.find() # 查询文档 注: sql中的select
db.db_test.find().limit(2) # 查询文档个数 注: sql中的limit 0,2
db.db_test.find().limit(2).skip(1) # 查询文档区间 注: sql中的limit 1,2
db.db_test.find().sort({"_id":1}) # 排序(1:正序,-1倒序)
db.db_test.find().pretty() # 查询文档 格式化输入
-- 查询 end--
db.db_test.update({"name":"luck_hwb"},{$set:{"age":"18"}}) # 更新文档 注: sql中的update
db.db_test.save({"_id":ObjectId("5dbbe0ba194429cb33531ed6"),"name":"new_obj"}) # 插入/替换文档
db.db_test.remove({"name":"new_obj"}) # 删除文档 sql中的delete
--条件查询文档 begin--
db.db_test.find({$or:[{"name":"luck_hwb"},{"name":"new_obj"}]}).pretty() -> where name = 'luck_hwb' or name = 'new_obj'
db.db_test.find({"age":{$gt:5}}) -> where age > 5
db.db_test.find({"age":{$gte:5}}) -> where age >= 5
db.db_test.find({"age":{$gte:5}}) -> where age >= 5
db.db_test.find({"age":{$gt:4,$lt:6}}) -> where age > 4 and age < 6
--条件查询文档 end--
--统计 begin--
db.db_test.aggregate([{$group:{_id:null, num_tutorial:{$sum:1}}}]) -> select sum(1) from db_test
db.db_test.aggregate([{$group:{_id:"$user_id", num_tutorial:{$sum:"$age"}}}]) -> select user_id, sum(age) from db_test group by user_id
--统计 end--
db.db_test.createIndex({"name":1}) # 创建索引(1:升序创建索引, -1:降序创建索引)