操作数据库:
启动/停止:net start/stop mongodb
进入/退出:mongo/exit
查看所有数据库:show dbs
进入数据库:use dbName
查看当前使用的数据库:db/db.getName()
注:空的数据库是不会显示出来的 要插入数据才可以:db.dbName.insert()
删除数据库:db.dropDatabase()
集合的操作方法:
查看帮助api:db.worker.help()
查看当前数据库下的集合:show collections
创建集合:db.createCollection(collection_nae)/db.collection_name.insert(document)
集合中文档条数:db.person.count()
删除当前数据库中的集合:db.collection_name.drop()
集合重命名:db.orders.renameCollection( "orders2014" )
插入文档:
db.collection_name.insert(document);也可以添加多个文档:[{key:value},{},{}....];对象和数据都可以;
使用save()方法插入文档::db.collection_name.save(document);如果不指定_id字段,save()方法和insert()方法一致,如果指定,则更新指定_id字段;注:insert()不能指定已有_id ,会报错
更新文档:
update()方法更新文档,用于已存在的文档
语法:
注:查询条件为空{},匹配所有数据;如果$set:{没有的数据,相当于添加};$set:设置 $inc递增。针对某个变量进行递增 原来有的在原基础上递增,没有的话,新加递增的字段;db.person.update({age:100},{},{upsert:true});upsert:插入或更新,有就更新,没有则插入
删除文档:
remove()方法是用来移除集合中的数据的;注:在执行remove()函数前先执行find()命令来判断执行的条件是否正确;
语法:query:(可选)删除的文档的条件;justOne:(可选) 为true或1,则只删除一个文档;writeConcern:(可选)抛出异常的级别
db.person.remove({name:'lisi'});删除person集合中name=lisi的文档
查询文档:
1. find() 查询所有的document数据
2. 查询指定列
.find({queryWhere},{key:1,key1:1}};key字段为1 :显示,0:不显示,并且只显示查询条件的数据
3. findOne()方法查询匹配结果的第一条数据
4. 查询条件操作符:条件操作符用于毕竟两个表达式并从MONGODB集合中获取数据
等于:{<key>:<value>};小于:{<key>:{$lt:<value>}};小于或等于:{<key>:{$lte:<value>}}
大于:{<key>:{$gt:<value>}};大于等于:{<key>:{$gte:<value>}};不等于:{<key>:{$ne:<value>}}
实例:db.person.find({age:{$gt:30}});查询年龄大于30的数据
db.person.find({age:{$gte:30,$lte:50}});查询范围30《= doc <=50
5. 使用_id来查询 db.person.find({'_id',ObjectId("id")})
6. 查询结果的条数 db.person.find().count()
7. 查询某个字段的值是否包含另一个值 db.person.find({name:/value/}) 查询name中包含value的数据
8. 查询某个字段的值是否是另一个值的开头或结尾 db.person.find({naem:/^value$/})
查询条件:AND
find()方法可以传多个键,每个以逗号分开 代表:AND
OR:
db.person.find({$or:[{naem:'zhangsan'},{age:5}]})
AND 和OR联合使用
db.person.find({name:'lisi',age:21,$or:[{sex:'男'},{xy:4}]})
Limit与Skip方法
limit()方法可以读取指定数量的数据记录:db.person.find().limit(10);查询前10条数据
skip()方法跳过指定数量的数据,skip方法同样接受一个参数作为记录条数:db.person.find().skip(number);查询number条以后的数据
limit和skip可以混合使用 db.person.find().limit(number).skip(numbet)
limit()方法:读取指定数量的数据记录,db.person.find().limit(NUM)
skip()方法:跳过指定数量的数据,db.person.find().skip(NUM)
sort()方法:对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而-1是用于降序排列。
语法:db.person.find().sort({KEY:1}),其中KEY是根据排序的字段,例:db.person.find().sort({'name':1}) 1升序 -1降序
db.person.find().sort({update_at:-1}),目的是对日期进行降序排列。-1倒序,1升序
"__v"是"versionKey"的简写,当每一个文档由mongoose创建时就会自动添加,代表这该文档的版本,此属性可配置修改,默认为"__v",
作用是可以在"save文档"时作为一个查询条件,避免在"取出数据"到"save数据"的这段时间内,数据被其他进程修改而导致冲突。