mongodb 安装使用备记
2024-10-12 23:47:39
# 1.1 安装
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
sudo apt-get update
sudo apt-get install -y mongodb-org # 1.2 启停
sudo service mongod start
sudo service mongod stop
sudo service mongod restart # 1.3 卸载
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb # 1.4 链接
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
mongodb://localhost,localhost:27018,localhost:27019
# 2.1 数据库操作
mongo # 进入shell
use jkTest;
db.createCollection('users');
show dbs; # 发现已经创建myTest数据库
db.help();
db.users.help();
db.users.find().help();
db.dropDatabase(); # 删除数据库 # 2.2 用户操作
db.addUser("user_00");
db.addUser("user_00", "test123", true); 添加用户、设置密码、是否只读
db.removeUser("user_00"); #删除用户
show users; # 查看用户情况 # 3.1 增
db.users.insertOne({userName: 'jkmiao', age: , sex: true}); # insertMany() , save before 3.2 version db.inventory.insertMany([
{ item: "journal", qty: , tags: ["blank", "red"], size: { h: , w: , uom: "cm" } },
{ item: "mat", qty: , tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: , tags: ["gel", "blue"], size: { h: , w: 22.85, uom: "cm" } }
]) # 3.2 删
db.users.remove({age: }, {justOne: }); # remove all
db.books.update( { _id: }, { $unset: { tags: } } ) # remove some field # 3.3 改 db.collection.update(
<query>,
<update>,
{
upsert: <boolean>, # 找不到就新插入, 默认false
multi: <boolean>, # 遍历所有进行更新,默认false
writeConcern: <document>, #
collation: <document> # dict, 校对, 抛出异常的级别
}
) # ============================ # origin:
{
_id: ,
item: "TBD",
stock: ,
info: { publisher: "", pages: },
tags: [ "technology", "computer" ],
ratings: [ { by: "ijk", rating: }, { by: "lmn", rating: } ],
reorder: false
}
# update
db.books.update(
{ _id: },
{
$inc: { stock: },
$set: {
item: "ABC123",
"info.publisher": "",
tags: [ "software" ],
"ratings.1": { by: "xyz", rating: }
}
},
{
upsert: true
}
)
# after
{
"_id" : ,
"item" : "ABC123",
"stock" : ,
"info" : { "publisher" : "", "pages" : },
"tags" : [ "software" ],
"ratings" : [ { "by" : "ijk", "rating" : }, { "by" : "xyz", "rating" : } ],
"reorder" : false
} # 3.4 查
db.users.find({age: {$lte: }}, {age: }).forEach(printjson); # 只显示age列
db.users.find({age: {$lte: }}, {age: false, '_id':false}).forEach(printjson); # 排除age列 db.collection.find( { a: , b: { $in: [ , , ] } } ).count()
db.collection.find( { a: { $gt: }, b: } ).count()
db.collection.find( { a: , b: , c: } ) db.users.find({ 'age':{$lte:}, $or: [{name:'user_11'}, {name: 'user_15'}]}).sort({age:}); # 按条件查数量
db.collection.aggregate(
[
{ $match: <query condition> },
{ $group: { _id: null, count: { $sum: } } }
]
)
# 3.5 高阶使用 # 聚合查询 # origin: { _id: , cust_id: "abc1", ord_date: ISODate("2012-11-02T17:04:11.102Z"), status: "A", amount: }
{ _id: , cust_id: "xyz1", ord_date: ISODate("2013-10-01T17:04:11.102Z"), status: "A", amount: }
{ _id: , cust_id: "xyz1", ord_date: ISODate("2013-10-12T17:04:11.102Z"), status: "D", amount: }
{ _id: , cust_id: "xyz1", ord_date: ISODate("2013-10-11T17:04:11.102Z"), status: "D", amount: }
{ _id: , cust_id: "abc1", ord_date: ISODate("2013-11-12T17:04:11.102Z"), status: "A", amount: } # aggregate: group by and sum db.orders.aggregate([
{ $match: { status: "A" } },
{ $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
{ $sort: { total: - } }
]) # after: { "_id" : "xyz1", "total" : }
{ "_id" : "abc1", "total" : } # 查询修改删除
db.users.findAndModify({
query: {age: {$gte: }},
sort: {age: -},
update: {$set: {name: 'a2'}, $inc: {age: }},
remove: true
});
db.runCommand({ findandmodify : "users",
query: {age: {$gte: }},
sort: {age: -},
update: {$set: {name: 'a2'}, $inc: {age: }},
remove: true
}); # bulkWrite
db.collection.bulkWrite(
[
{ insertOne : <document> },
{ updateOne : <document> },
{ updateMany : <document> },
{ replaceOne : <document> },
{ deleteOne : <document> },
{ deleteMany : <document> }
],
{ ordered : false }
)
# 语句块
for(var i = ; i < ; i++){db.users.save({name: "user_" + i, age: + i, sex: i % })};
最新文章
- PHP自学链接收藏
- 快速反编绎jar war包
- chrome 插件 vimium 像操作vim一样的操作浏览器
- jquery实现智能表单
- C语言中的结构体,结构体数组
- Django添加模型无法数据迁移解决方法
- WPF全球化与本地化 (二)
- ocp 1Z0-051 141-175题解析
- POJ 1679	 The Unique MST (最小生成树)
- Codeforces Round #261 (Div. 2) D 树状数组应用
- PHP 系统常量及自定义常量
- 《JavaScript高级程序设计》笔记(1):<;script>;元素
- 开启.htaccess重写之前先来看看mod_rewrite(转)
- 使用 C# 进行 Outlook 2003 编程
- django 中文乱码问题
- Java异常处理机制 —— 深入理解与开发应用
- 给ubuntu的swap分区增加容量
- nodejs内存溢出
- 2017-9-24模拟赛T1 个人卫生综合征(school.*)
- pycharm安装mysql驱动包