Mongodb安装和简单操作

文章目录

  • 1.安装服务端
    • 1.1 官网下载,解压安装
    • 1.2 配置启动
  • 2.安装客户端
  • 2.1 MongoDB Shell下载安装
  • 2.2 连接服务
  • 3.操作
    • 3.1 创建数据库
  • Create a New Database and Collection
    • 3.1 Insert Documents
    • 3.2 Query Documents
    • 3.3 Update Documents
    • 3.4 Delete Documents

1.安装服务端

1.1 官网下载,解压安装

mogodb下载地址

# 下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-7.0.11.tgz
# 解压
tar -zxvf mongodb-linux-x86_64-rhel70-7.0.11.tgz 
# 修改包名
mv mongodb-linux-x86_64-rhel70-7.0.11 mongodb
# 配置环境变量
export MONGODB_HOME=/opt/software/mongo
export PATH=$MONGODB_HOME/bin:$PATH
# 使环境变量生效
source /etc/profile

1.2 配置启动

默认情况下 MongoDB 启动后会初始化以下两个目录:
数据存储目录:/var/lib/mongodb
日志文件目录:/var/log/mongodb

#创建目录
sudo mkdir -p /var/lib/mongo
sudo mkdir -p /var/log/mongodb
# 设置权限
sudo chown `whoami` /var/lib/mongo     
sudo chown `whoami` /var/log/mongodb 
# 启动
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
# 查看日志
tail -10f /var/log/mongodb/mongod.log

2.安装客户端

MongoShell安装参考地址

2.1 MongoDB Shell下载安装

# 下载
wget https://downloads.mongodb.com/compass/mongosh-2.2.6-linux-x64.tgz
# 解压
tar -zxvf mongosh-2.2.6-linux-x64.tgz
# 授权
chmod +x bin/mongosh
# 移动以下两个文件到以下路径下
sudo cp mongosh /usr/local/bin/
sudo cp mongosh_crypt_v1.so /usr/local/lib/
# 软链接
sudo ln -s $(pwd)/bin/* /usr/local/bin/

2.2 连接服务

mongosh "mongodb://localhost:28015"
mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin

3.操作

3.1 创建数据库

Create a New Database and Collection

use myNewDatabase
db.myCollection.insertOne( { x: 1 } );

use maps
switched to db maps
maps> 
maps> db.maps.insertOne({x:1,y:1})
{acknowledged: true,insertedId: ObjectId('665bb7f84323849c6fa26a13')
}

3.1 Insert Documents

The MongoDB shell provides the following methods to insert documents into a collection:
To insert a single document, use db.collection.insertOne().

 db.music.insertOne({singer:"xxx",name:"do it",type:"popular"})
{acknowledged: true,insertedId: ObjectId('665bb96b4323849c6fa26a14')
}

To insert multiple documents, use db.collection.insertMany().

db.music.insertMany([{singer:"yyy",name:"love it",type:"popular"},{singer:"zzz",name:"forget it",type:"popular"}])
{acknowledged: true,insertedIds: {'0': ObjectId('665bb9e04323849c6fa26a16'),'1': ObjectId('665bb9e04323849c6fa26a17')}
}

3.2 Query Documents

db.music.find()

db.music.find()
[{_id: ObjectId('665bb96b4323849c6fa26a14'),singer: 'xxx',name: 'do it',type: 'popular'},{'0': { singer: 'yyy', name: 'love it', type: 'popular' },'1': { singer: 'zzz', name: 'forget it', type: 'popular' },_id: ObjectId('665bb9ca4323849c6fa26a15')},{_id: ObjectId('665bb9e04323849c6fa26a16'),singer: 'yyy',name: 'love it',type: 'popular'},{_id: ObjectId('665bb9e04323849c6fa26a17'),singer: 'zzz',name: 'forget it',type: 'popular'}
]

3.3 Update Documents

db.music.updateOne({singer:"xxx"},{$set:{type:"sad"}})
{acknowledged: true,insertedId: null,matchedCount: 1,modifiedCount: 1,upsertedCount: 0
}
maps> db.music.find({singer:"xxx"})
[{_id: ObjectId('665bb96b4323849c6fa26a14'),singer: 'xxx',name: 'do it',type: 'sad'}
]

3.4 Delete Documents

db.music.deleteOne( { singer: "xxx" } )
{ acknowledged: true, deletedCount: 1 }
maps> db.music.find()
[{'0': { singer: 'yyy', name: 'love it', type: 'popular' },'1': { singer: 'zzz', name: 'forget it', type: 'popular' },_id: ObjectId('665bb9ca4323849c6fa26a15')},{_id: ObjectId('665bb9e04323849c6fa26a16'),singer: 'yyy',name: 'love it',type: 'popular'},{_id: ObjectId('665bb9e04323849c6fa26a17'),singer: 'zzz',name: 'forget it',type: 'popular'}
]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python | Leetcode Python题解之第125题验证回文串

题目&#xff1a; 题解&#xff1a; class Solution:def isPalindrome(self, s: str) -> bool:n len(s)left, right 0, n - 1while left < right:while left < right and not s[left].isalnum():left 1while left < right and not s[right].isalnum():right - …

2010-2015 年阿拉斯加北坡苔原植物功能类型连续覆盖图

ABoVE: Tundra Plant Functional Type Continuous-Cover, North Slope, Alaska, 2010-2015 2010-2015 年阿拉斯加北坡苔原植物功能类型连续覆盖图 简介 文件修订日期&#xff1a;2021-08-27 数据集版本: 1 摘要 该数据集以 30 米的分辨率提供了阿拉斯加北坡约 12.5 万平方…

UTF-64设想之排列组合

现有的UTF-8和UTF-16&#xff0c;用不同语言表示相同意思时&#xff0c;字节数相差很多。所以&#xff0c;就有了UTF-64的设想。它的设计目标是&#xff1a;不同语言表示相同意思&#xff0c;需要的字节数相差不多。 运行以下程序&#xff0c;得出所有排列组合。 import itert…

【深度学习的未来:探索无监督学习的潜力】

文章目录 前言无监督学习的基本概念简单的无监督学习示例&#xff1a;K-Means聚类分析代码结论 前言 随着深度学习技术的不断进步&#xff0c;我们正逐渐从依赖大量标注数据的有监督学习转向更加高效和自主的无监督学习。无监督学习旨在让机器从数据中自行发现模式和结构&…

【RuoYi】实现文件的上传与下载

一、前言 首先&#xff0c;最近在做一个管理系统&#xff0c;里面刚好需要用到echarts图和富文本编辑器&#xff0c;然后我自己去看了官网觉得有点不好懂&#xff0c;于是去B站看来很多视频&#xff0c;然后看到了up主【程序员青戈】的视频&#xff0c;看了他讲的echarts图和富…

k8s 部署 Dashboard

Dashboard 是官方提供的一个UI&#xff0c;可用于基本管理K8s资源。 # 在master节点执行# wget \ https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml vi recommended.yaml 增加 nodePort: 30001 和 type: NodePort ...... spec:p…

一步一步写线程之十四并行编程和并行库

一、并行编程 多线程和多进程编程&#xff0c;在早期一般是并发编程&#xff0c;现在基本是并行编程的基础。或者干脆就叫并行编程也没有什么可纠结的。但实际上并发编程和并行编程还是有着很大的不同。在前面的“多核和多CPU编程”系列中&#xff0c;已经对并发和并行的概念以…

利用Python处理DAX多条件替换

小A&#xff1a;白茶&#xff0c;救命啊~~~ 白茶&#xff1a;什么情况&#xff1f; 小A&#xff1a;是这样的&#xff0c;最近不是临近项目上线嘛&#xff0c;有一大波度量值需要进行类似的调整&#xff0c;一个两个倒没啥&#xff0c;600多个&#xff0c;兄弟&#xff0c;救命…

从JS角度直观理解递归的本质

让我们写一个函数 pow(x, n)&#xff0c;它可以计算 x 的 n 次方。换句话说就是&#xff0c;x 乘以自身 n 次。 有两种实现方式。 迭代思路&#xff1a;使用 for 循环&#xff1a; function pow(x, n) {let result 1;// 在循环中&#xff0c;用 x 乘以 result n 次for (let i…

Springboot中使用spel+自定义注解实现权限控制

使用spel+自定义注解实现权限控制的案例很多, 比如springsecurity,本文也是一同样的方式实现权限校验 定义注解 package com.example.demo.anno;import java.lang.annotation.ElementType; import java.lang.annotation.

opencv进阶 ——(九)图像处理之人脸修复祛马赛克算法CodeFormer

算法简介 CodeFormer是一种基于AI技术深度学习的人脸复原模型&#xff0c;由南洋理工大学和商汤科技联合研究中心联合开发&#xff0c;它能够接收模糊或马赛克图像作为输入&#xff0c;并生成更清晰的原始图像。算法源码地址&#xff1a;https://github.com/sczhou/CodeFormer…

如何快速找到 RCE

背景介绍 本文将分享国外白帽子在‘侦察’阶段如何快速发现 RCE 漏洞的经历。以Apache ActiveMQ 的 CVE-2023–46604 为特例&#xff0c;重点介绍如何发现类似此类的漏洞&#xff0c;让我们开始吧。 快速发现过程 在‘侦察’阶段&#xff0c;白帽小哥会保持每周更新一次目标…

1940java swing零售库存管理系统myeclipse开发Mysql数据库CS结构java编程

一、源码特点 java swing 零售库存管理系统 是一套完善的窗体设计系统&#xff0c;对理解SWING java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;&#xff0c;系统主要采用C/S模式开发。 应用技术&#xff1a;javamysql 开发工具&#xff1a;…

适合技术小白学习的项目1863java在线视频网站系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java在线视频网站系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。 开发环境为TOMCAT7.0,Myeclipse8.5开发…

数据库、数据表的基本操作

1.数据库的基本操作 &#xff08;1&#xff09;创建数据库 &#xff08;2&#xff09;删除数据库 &#xff08;3&#xff09;将数据库的字符集修改为gbk gbk是汉字内码扩展规范&#xff0c;是GB2312和GB13000的扩展&#xff0c;主要用于简体中文。 &#xff08;4&#xff09;…

LabVIEW在高校电力电子实验中的应用

概述&#xff1a;本文介绍了如何利用LabVIEW优化高校电力电子实验&#xff0c;通过图形化编程实现参数调节、实时数据监控与存储&#xff0c;并与Simulink联动&#xff0c;提高实验效率和数据处理能力。 需求背景高校实验室在进行电机拖动和电力电子实验时&#xff0c;通常使用…

前端框架安全防范

前端框架安全防范 在现代Web开发中&#xff0c;前端框架如Angular和React已经成为构建复杂单页面应用&#xff08;SPA&#xff09;的主流工具。然而&#xff0c;随着应用复杂度的增加&#xff0c;安全问题也变得越来越重要。本文将介绍如何在使用Angular和React框架时&#xf…

Java中的synchronized关键字详解

Java中的synchronized关键字详解 1. 引言 在Java编程中&#xff0c;多线程是提高应用性能的重要手段之一。然而&#xff0c;多线程环境下共享资源的访问控制成为必须面对的问题。synchronized关键字作为Java语言提供的一种同步机制&#xff0c;能够有效地解决这一问题。本文将…

施耐德 BAS PLC 基本操作指南

CPU 型号 项目使用的 PLC 型号为&#xff1a;施耐德昆腾 Quantum 140 CPU 67160 P266 CPU &#xff0c;支持热备冗余&#xff0c;内部存储 1024K&#xff0c;支持 2 个 PCMCIA 扩展卡槽CPU 模块自带接口&#xff1a;MB 串口接口、MB 串口接口、USB 接口、以太网接口&#xff…

MATLAB算法实战应用案例精讲-【数模应用】联合分析(附python和MATLAB代码实现)

目录 前言 算法原理 什么是联合分析? 联合分析的基本原理与步骤