MongoDB
安装与使用
服务器命令
数据命令
复制(副本集)
备份与恢复
监控指标
MongoDB集群(docker)
本文档使用MrDoc发布
返回首页
-
+
数据命令
2021年6月23日 11:03
admin
https://www.docs4dev.com/docs/zh/mongodb/v3.6/reference/reference-method-db.getCollectionNames.html #创建表 db.createCollection("[表名]") #例子: db.createCollection("runoob") #删除表 db.collection.drop() #例子 db.runoob.drop() #清空表 db.collection.remove({}) #查看所有表名 db.getCollectionNames() --- #命令行 #列出所有数据库名称 mongo --eval "db.adminCommand('listDatabases').databases.forEach(function(d){print(d.name)})" #列出指定数据库的所有集合 mongo d9cloud_op --eval "db.getCollectionNames().join('\n')" #列出指定数据库的指定前缀集合 mongo d9cloud_op --eval "db.getCollectionNames().filter(coll => coll.startsWith('data_2023_04_24')).join('\n')" --- #查询 show dbs #查询数据库 show collections #查询表 use [数据库名称] #切换数据库 db.[表名].findOne() #查询单条数据 db.[表名].find(【条件】) #查询多条数据 #例子: db.mycol2.find({"name":"测试"}) #查询name为测试的数据 ---------------------------------------------------- ###格式输出 db.mycol2.find({"name":"测试"}).pretty() ##格式输出 ![](/media//202106/2021-06-23112602337442.png) ###排序 db.mycol2.find({"name":"测试"}).sort({KEY:1}) #1 为升序排列,而 -1 是用于降序排列 ###Limit(NUMBER) db.mycol2.find({"name":"测试"}).limit(10) #取前10个数据 ###AND和OR条件 #AND条件: db.mycol2.find({"name":"测试","title":"测试数据"}).pretty() 或者 db.mycol2.find({"$and":[{"name":"测试"},{"title":"测试数据"}]}) ----------------------------------------------------------------------- #OR条件: db.mycol2.find({"$or":[{"name":"测试"},{"title":"测试数据"}]}) --- ###查询特定时间段数据 ![](/media//202106/2021-06-23114824423453.png) db.customer_353.find({"updatetime":{"$gt":"2015-5-21 0:0:0"}}) // 大于某个时间 db.customer_353.find({"updatetime":{"$lt":"2014-5-21 0:0:0"}}) // 小于某个时间 db.customer_353.find({"$and":[{"updatetime":{"$gt":"2021-06-21 16:45:00"}},{"updatetime":{"$lte":"2021-06-21 16:50:00"}}]}) // 某个时间段 --- ###删除指定数据 #删除 status 等于 A 的全部文档 db.collection.deleteMany ({ status : "A" }) #删除 status 等于 D 的一个文档 db.collection.deleteOne ({ status : "D" }) --- ###聚合查询 db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}]) #以上实例类似sql语句: select by_user, count(*) from mycol group by by_user ![](/media//202106/2021-06-23115638791599.png) ###参考 https://www.cnblogs.com/zhoujie/p/mongo1.html --- #插入 >####MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下: db.COLLECTION_NAME.insert(document) 或 db.COLLECTION_NAME.save(document) ----------------------------------------------------- save(): #如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。 insert(): #若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。 ![](/media//202106/2021-06-23111303750410.png) --- #更新 #更新:原来的 "MongoDB 教程" 更新为了 "MongoDB"。 db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) ####注意:以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。 db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true}) --- #索引 ####创建索引 db.callRecord_81.createIndex({"mobile":1}); #1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可 ####删除索引 db.callRecord_81.dropIndexes() #删除所有索引 db.callRecord_81.dropIndex("mobile") #删除指定索引 ####查看索引 db.callRecord_81.getIndexes() ---
分享到: