mongodb 基础入门

安装

docker pull mongo:latest

启动

docker run -itd --name mongo -p 27017:27017 mongosh --auth

# 创建账号密码
db.createUser({ user:'admin',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

docker进入

#直接进入,后面输入账号密码
docker exec -it mongo mongosh admin
db.auth("admin","123456");

基础操作

-- 查看所有账号
db.system.users.find().pretty();
-- 创建账号
db.createUser(
	{
		user:"root",
		pwd:"123456",
		roles:[{role:"root",db:"admin"}]
	}
);

-- 查看数据库
show dbs;
-- 查看当前使用数据库
db;
-- 创建数据库,如果数据库不存在直接创建,存在则切换至数据库
use dbname;
-- 删除数据库,在当前数据上执行
db.dropDataBase();



-- 创建集合
db.createCollection("chat");
-- 查看集合
show tables;
-- 往集合中插入数据
db.chat.insertOne({"id":1,"name":"张三"});-- 老版本可以直接使用insert,新版本会提示Use insertOne, insertMany, or bulkWrite
-- 查看集合中所有数据
db.chat.find().pretty();
-- 带条件查询集合中数据
db.chat.find({"id":2}).pretty();-- 对应sql id=2
db.chat.find({"id":{"$gt":3}}).pretty();-- 对应sql id>3,同理可使用lt nlt ngt
db.chat.find({"name"://}); -- sql name like '%张%'

-- 删除集合(表)
db.chat.drop();

-- 更新文档(表中的row)
db.chat.update({"name":"张三"},{$set:{"name":"战三钩子"}});-- 第一个为query,第二个为update的值。

-- 排序
db.chat.find().sort({"id":1});-- mysql order by id asc 
db.chat.find().sort({"id":-1});-- mysql order by id desc 

高级应用

mapreduce
地理位置
  • 写入经纬度信息
db.test.insert({"address" : "南京 禄口国际机场","loc" : { "type": "Point", "coordinates": [118.783799,31.979234]}})
 db.test.insert({"address" : "南京 浦口公园","loc" : { "type": "Point", "coordinates": [118.639523,32.070078]}})
 db.test.insert({"address" : "南京 火车站","loc" : { "type": "Point", "coordinates": [118.803032,32.09248]}})
 db.test.insert({"address" : "南京 新街口","loc" : { "type": "Point", "coordinates": [118.790611,32.047616]}})
 db.test.insert({"address" : "南京 张府园","loc" : { "type": "Point", "coordinates": [118.790427,32.03722]}})
 db.test.insert({"address" : "南京 三山街","loc" : { "type": "Point", "coordinates": [118.788135,32.029064]}})
 db.test.insert({"address" : "南京 中华门","loc" : { "type": "Point", "coordinates": [118.781161,32.013023]}})
 db.test.insert({"address" : "南京 安德门","loc" : { "type": "Point", "coordinates": [118.768964,31.99646]}})
  • 添加索引
db.test.ensureIndex({loc:"2dsphere"});
  • 查询
db.test.find({ "loc" : { "$near" : { "$geometry" : { "type" : "Point", "coordinates" : [118.783799, 31.979234] }, "$maxDistance" : 5000 } } });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

壬戌知秋

您的打赏将是我最大的鼓励感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值