MongoDB 语法

数据库

-- 查看所有的数据库
show dbs;
-- 查看当前窗口所在的数据库
db;
-- 如果数据库不存在,则创建数据库,否则切换到指定数据库
use database;
-- 删除当前数据库,默认为 test,故要切换到某个数据库下进行删除
db.dropDatabase();

创建

-- 创建集合
db.createCollection("collectionName");
-- 查看集合
show collections; 
-- 统计集合collection1中的数据数量
db.collection1.count(); 
-- 删除集合collection
db.collection1.drop();
-- 固定集合 size指定集合大小,单位为KB,max指定文档数量 
db.createCollection("collectionName",{capped:true,size:10000,max:100});

固定集合特性:固定集合很想环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制

插入

-- 插入一条 insert 、insertOne 均可
db.user.insertOne({name: "张三", age: 20});
-- 输出结果:
// {
//   "acknowledged" : true,
//   "insertedId" : ObjectId("5f1c89b3c9d79812f8c8a7d1")
// }

-- 也可以自定义 _id 字段
db.users.insertOne({
   _id: "user_001",
   name: "Bob",
   age: 25
})
-- 插入多条
db.user.insertMany([{name: "张三", age: 20}, {name: "李四", age: 20}]);

查询

-- 查询年龄20的数据
db.user.find({age:20})
-- 查询年龄20,只返回 name字段(1展示,0 不展示;设置0的话,返回除了name以外的所有字段)
db.user.find({age:20},{name:1})
-- 查询一条数据
db.user.findOne();
-- 查询 age 大于 10的数据
db.collection1.find({age:{$gt:10}});
-- 查询所有price包含1和2的数据
db.collection1.find({price:{$all:[1,2]}});
--
db.collection1.find({price:{$nin:[1,2]}});
--
db.collection1.find({$or:[{name:"xiaomu"},{price:{$in:[3]}}]});
  • gt 大于
  • lt 小于
  • gte 大于等于
  • lte 小于等于
  • ne 不等于
  • all 包含所有
  • in 包含
  • nin 不包含
  • or 或
  • nor 既不也不

分页

db.collection1.find().skip(0).limit(10);

排序

-- 按年龄排序 1:升序 -1:降序
db.collection1.find().sort({age:1});

exists

-- 查询存在 age 字段的数据
db.collection1.find({age:{$exists:1}});

删除

-- 删除age为7,name为xiaomu的数据
db.collection1.remove({age:7,name:"xiaomu"})

更新

-- 将age为12的满足条件数据的第一条整条数据覆盖为name:“xiaoxiao”
db.c3.update({age:12},{name:"xiaoxiao"});
-- 只修改了查询到的第一条数据
db.c3.update({age:15},{$set:{name:"xiaolili"}});
--第3个参数1表示如果没有符合条件的记录是否新增一条记录,1表示新增,0表示不新增
--第4个参数表示有多条数据符合筛选条件的话是否全部更改,默认为0只改第一条,1表示全部更改
db.c3.update({age:15},{$set:{name:"xiaolili"}},1,1);
-- $inc表示使某个键值加减指定的数值,此处表示将name为xiaoxiao的数据的age字段的值减2
db.c3.update({age:12},{name:"xiaoxiao"},{$inc:{age:-2}},1,1);
-- $unset用来删除某个键,此处表示删除name为xiaoxiao的数据的age字段
db.c3.update({age:12},{name:"xiaoxiao"},{$inc:{age:1}},0,1);

索引

-- mongo默认为每条数据的_id字段建索引
-- 为age字段建普通索引
db.c3.ensureIndex({age:1});
-- 删除age字段的索引
db.c3.dropIndex({age:1});
-- 为age字段建唯一索引,在为字段建了唯一索引后就不能再添加相同值的记录了
db.c3.ensureIndex({age:1},{unique:true});
posted @ 2025-09-03 16:13  yisnon  阅读(19)  评论(0)    收藏  举报