上篇文章提到:mongodb提供的客户端管理工具是mongo,可以用来操作数据库,进行CRUD。现在我们和上一章一样启动mongod,然后启动mongo。不记得的同学跟着截图看截图。创建和删除数据库使用DATABASE_NAME。不存在则创建,否则直接切换到数据库,显示当前数据库db显示所有数据库showdbsdeletedatabasedb.dropDatabase()MongoDBcreatedatabase中文文档写入数据(document)文档的数据结构为基本上和json一样集合中的所有存储都是BSON格式BSON和json一样是二进制形式的存储格式,简称BinaryJSON>db.col.insert({title:'MongoDBTutorial',description:'MongoDBis一个Nosql数据库”,作者:“菜鸟教程”,url:“http://www.runoob.com”,标签:['mongodb','database','NoSQL'],喜欢:100})上面我们提到那个js可以在mongodb中使用,我们再看其他例子:删除文档db.collection.remove(,)query:(optional)删除文档的条件。justOne:(可选)如果设置为true或1,则只会删除一个文档。比较删除集合中的所有文档(保留集合):db.col.remove({})删除集合:db.col.drop()>db.col.find(){"_id":ObjectId("56c55cf5ca446fab71e4c382"),"x":1}{"_id":ObjectId("56c55cf6ca446fab71e4c383"),"x":1}{"_id":ObjectId("56c55cffca446fab71e4c384"),"x":1}>db.col.remove({x:1},1)WriteResult({"nRemoved":1})>db.col.find(){"_id":ObjectId("56c55cf6ca446fab71e4c383"),"x":1}{"_id":ObjectId("56c55cffca446fab71e4c384"),"x":1}>db.col.remove({x:1})WriteResult({"nRemoved":2})>db.col.find()数据更新更新()update()方法用于更新已有文档db.collection.update(,,{upsert:,multi:,writeConcern:})参数说明:query:update查询条件类似于sql更新查询中的where。update:更新对象和一些更新操作符(如$、$inc...)等,也可以理解为在sql更新查询中设置后的upsert:可选,该参数表示如果没有更新record,是否插入objNew,true表示插入,默认为false,不插入。multi:可选,mongodb默认为false,只更新找到的第一条记录。如果该参数为真,则更新所有根据条件找到的多条记录。writeConcern:可选,抛出异常的级别。我们在集合jx_collection中插入如下数据:然后我们通过update()方法更新标题(title):更多的实例只更新第一条记录:db.jx_collection.update({"count":{$gt:1}},{$set:{"test2":"OK"}});全部更新:db.jx_collection.update({"count":{$gt:3}},{$set:{"test2":"OK"}},false,true);只添加第一项:db.jx_collection.update({"count":{$gt:4}},{$set:{"test5":"OK"}},true,false);添加全部:db.jx_collection.update({"count":{$gt:5}},{$set:{"test5":"OK"}},true,true);所有更新:db.jx_collection.update({"count":{$gt:15}},{$inc:{"count":1}},false,true);只更新第一条记录:db.jx_collection。更新({“计数”:{$gt:10}},{$inc:{“计数”:1}},假,假);更多命令快速参考save()db.AddUser(username,password)添加用户db.auth(usrename,password)设置数据库连接验证db.cloneDataBase(fromhost)从目标服务器克隆数据库db.commandHelp(name)返回帮助forthecommanddb.copyDatabase(fromdb,todb,fromhost)Copydatabasefromdb---源数据库名,todb---目标数据库名,fromhost---源数据库服务器地址db.createCollection(name,{size:3333,capped:333,max:88888})创建一个数据集,相当于一个表db.currentOp()取消当前库的当前操作db.dropDataBase()删除当前数据库db.eval(func,args)运行代码server-sidedb.getCollection(cname)获取一个数据集合,用法相同:db['cname']ordb.getCollenctionNames()获取所有数据集合的名称列表db.getLastError()返回最后一个错误提示信息db.getLastErrorObj()返回最后一个错误对象db.getMongo()获取当前服务器的连接对象gettheserverdb.getMondo().setSlaveOk()允许这个连接从当时的非master成员读取areplicapairdb.getName()返回操作时数据库的名称db.getPrevError()返回之前的错误对象db.getProfilingLevel()db.getReplicationInfo()获取重复数据db.getSisterDB(name)同时获取dbserverasthisonewdb.killOp()停止(kill)当前库中的当前操作db.printCollectionStats()返回当前库的数据集状态db.printReplicationInfo()db.printSlaveReplicationInfo()db.printShardingStatus()返回是否当前数据库是共享数据库db.rremoveUser(username)删除用户db.repairDatabase()修复当前数据库db.resetError()db.runCommand(cmdObj)运行数据库命令。如果cmdObj是字符串,则转成{cmdObj:1}db.setProfilingLevel(level)0=off,1=slow,2=alldb.shutdownServer()关闭当前服务程序db.version()返回的版本信息当前程序db.test.find({id:10})返回测试数据集ID=10Datasetdb.test.find({id:10}).count()返回测试数据集ID中的数据总数=10db.test.find({id:10}).limit(2)返回测试数据集ID=10的数据集从第二个数据集开始db.test.find({id:10}).skip(8)返回测试数据集ID=10的数据集db从0到第8个数据集.test.find({id:10}).limit(2).skip(8)从第2个返回数据到测试数据集ID=1的第8个数据集=db.test.find({id:10}).sort()返回排序后的数据集,测试数据集ID=10db.test.findOne([query])返回一条符合条件的数据db.test.getDB()返回该数据集所属数据库的名称db.test.getIndexes()返回部分数据集的索引信息db.test.group({key:...,initial:...,reduce:...[,cond:...]})db.test.mapReduce(mayFunction,reduceFunction,)db.test.remove(查询)在数据集中删除一条数据db.test.renameCollection(newName)重命名一些数据集名称db.test.save(obj)在数据集中插入一条数据db.test.stats()返回这个数据集的状态db.test.storageSize()返回此数据集的存储大小db.test.totalIndexSize()返回此数据集的索引文件大小db.test.totalSize()返回这些数据集的总大小db.test.update(query,object[,upsert_bool])更新此数据集中的一条数据db.test.validate()验证此数据集db.test.getShardVersion()返回数据集的共享版本号导入集合MongoDB:导入集合(mongoimport)MongoDBgeographic索引初步研究比如这里 我们有两个文件, neighborhoods.json和 restaurants.json,导入测试数据库mongodbimportbsondatalinux命令:mongorestore-ddb_name文件夹目录//mongorestore--host127.0.0.1--port27017-ddb_name文件夹目录windows命令:mongorestore.exe-ddb_name文件夹目录node.jsconnectmongodbNode.jsconnectMongoDBnodejsinsertdata//insertdata//http://www.runoob.com/nodejs/nodejs-mongodb.htmlvarMongoClient=require('mongodb').MongoClient;varDB_CONN_STR='mongodb://127.0.0.1:27017/test';varinsertData=function(db,callback){//连接表站点varcollection=db.collection('site');//插入数据vardata=[{"name":"镜心小树屋","url":"www.jxdxsw.com"},{"name":"segmentfault","url":"https://segmentfault.com"}];collection.insert(data,function(err,result){if(err){console.log('Error:'+err);return}callback(result)});}MongoClient.connect(DB_CONN_STR,function(err,db){console.log('连接成功');insertData(db,function(result){console.log(result);db.close();});});在测试数据库中创建一个站点集合nodejs查询数据//查询数据//下面的例子检索名称为“静心的小树屋”的实例:varMongoClient=require('mongodb').MongoClient;varDB_CONN_STR='mongodb://localhost:27017/test';varselectData=function(db,callback){//连接到表 varcollection=db.collection('site');//查询数据varwhereStr={"name":'景欣的小树屋'};collection.find(whereStr).toArray(function(err,result){if(err){console.log('错误:'+错误);return}callback(result)});}MongoClient.connect(DB_CONN_STR,function(err,db){console.log("连接成功");selectData(db,function(result){console.log(result);db。关闭();});});nodejsupdatedata//更新数据//我们也可以修改数据库中的数据,下面的例子将名为“精信小树屋”的url修改为http://youlishu.comvarMongoClient=require('mongodb').MongoClient;varDB_CONN_STR='mongodb://localhost:27017/test';varupdateData=function(db,callback){//连接表varcollection=db.collection('site');//更新datavarwhereStr={"name":'静心的小树屋'};varupdateStr={$set:{"url":"http:yulishu.com"}};collection.update(whereStr,updateStr,function(err,result){if(err){console.log('Error:'+err);return;}callback(result);});}MongoClient.connect(DB_CONN_STR,function(err,db){console.log("连接成功!");updateData(db,function(result){console.log(result);db.c失去();});});nodejsdeletedata//删除数据//下面的例子删除名称为“静心的小树屋”的数据:varMongoClient=require('mongodb').MongoClient;varDB_CONN_STR='mongodb://localhost:27017/测试';vardelData=function(db,callback){//连接到表varcollection=db.collection('site');//删除数据varwhereStr={"name":'镜子心的小树屋'};collection.remove(whereStr,function(err,result){if(err){console.log('Error:'+err);return;}callback(result);});}MongoClient.connect(DB_CONN_STR,function(err,db){console.log("连接成功!");delData(db,function(result){console.log(result);db.close();});});参考MongoDB中文文档MongoDB操作你在mongodb上使用的主要GUI工具有哪些?MongoDB生态-官方命令行工具npmmongodbCRUD操作