MongoDB 学习专题(日常篇)MongoDB 常用命令
Posted 盛夏温暖流年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 学习专题(日常篇)MongoDB 常用命令相关的知识,希望对你有一定的参考价值。
查看所有集合:
show collections
创建集合:
db.createCollection('user')
删除集合:
db.collection_name.drop()
给集合中插入对应数据:
db.user.insert([name:'jcy',phone:'15646464867',name:'cam',phone:'13845769584'])
查看集合数据:
// 简单查询
db.user.find()
// 美化后的查询
db.user.find().pretty()
// 查询一条数据
db.user.findOne()
// 根据条件查询
db.user.find(name:'cam')
// 根据条件和属性进行查询(姓名为 cam,只显示 name 字段)
db.user.find(name:'cam', name:1,_id:0)
// 只显示 name 字段,根据 name 进行倒序排序
db.user.find(,name:1).sort(name:-1)
// 只显示 name 字段,根据 name 进行倒序排序,跳过一条,仅显示两条
db.user.find(,name:1).sort(name:-1).skip(1).limit(2)
查看集合条件匹配符的查询:
// 查找 age 大于等于 20,只显示 age
db.user.find(
age:
$gte: 20,
,
,
age: 1,
);
// $gte 和 $lt 一同使用
db.user.find(
age:
$gte: 20,
$lt: 40,
,
,
age: 1
);
// $in 的使用
db.user.find(
age:
$in: [23, 24, 25, 26],
,
,
age: 1
);
$or 和 $and 的使用:
// $or 的使用
db.user.find(
$or: [
age:
$gte: 40,
$lt: 60
,
,
tags: 'A',
]
).pretty();
// $and 的使用
db.user.find(
$and: [
age:
$gte: 20,
$lt: 60,
,
,
tags: 'B',
,
],
).pretty();
// $and 简写形式
db.user.find(
age:
$gte: 20,
$lt: 60
,
tags: 'B'
).pretty();
匹配对象数组中的元素:
// 用 $elemMatch 匹配对象数组中的元素(必须是一个数组元素同时满足以下两个条件才可以)
db.user.find(
properties:
$elemMatch:
channel: 'channel_1',
openId: 'open_id_1',
,
,
).pretty();
更新数据:
// $set 更新一条记录
db.user.update(
id: 123,
,
$set:
name: '0001',
,
);
// 更新多条记录
db.user.updateMany(
name: "cam"
,
$set:
age: 15
,
);
更新数组对象:
// 用 $elemMatch 更新对象数组中的对应元素
// 'properties.$.openId' 中的 $ 代表的是更新的是搜索结果中匹配的数据项
db.user.update(
properties:
$elemMatch:
channel: 'channel_id_2',
openId: 'open_id_2_10002'
,
,
,
$set:
'properties.$.openId': 'open_id_2_10002_x'
);
普通数组中增加一个元素:
// $push 在数组中增加一个元素
db.user.update(
phone: '13312310001',
,
$push:
tags: 'X'
,
);
对象数组中增加一个对象元素:
// $push 在对象数组中增加一个对象元素
db.user.update(
phone: '13312310001',
,
$push:
properties:
channel: 'channel_id_3',
channelName: 'channel_name_3',
openId: 'open_id_3_pushed'
,
,
);
删除集合数据(硬删除):
// 全部删除集合数据(慎用)
db.collection.remove()
// 根据具体 id 进行删除
db.collection.remove("_id" : ObjectId("61dff68333819d842b5519a4"))
aggregate 基本用例:
db.user.aggregate([
$match: age: $gt: 30,
$project: tags: 1, age: 1,
$unwind: '$tags',
$group:
_id: '$tags',
sumAge: $sum: '$age',
count: $sum: 1,
avgAge: $avg: '$age',
,
]);
aggregate 复杂用例:
// 按年龄段统计出身份信息
db.user.aggregate([
$project:
ageLevel: $floor: $divide: ['$age', 10],
name: 1,
phone: 1,
,
$group:
_id: '$ageLevel',
phones: $push:
phone: '$phone',
userId: '$_id',
name: '$name',
,
,
$sort: $_id: 1,
]);
以上是关于MongoDB 学习专题(日常篇)MongoDB 常用命令的主要内容,如果未能解决你的问题,请参考以下文章