百度
360搜索
搜狗搜索

mongodb使用,如何在MongoDB中创建和删除数据库详细介绍

本文目录一览: 如何在MongoDB中创建和删除数据库

本篇文章将给大家介绍关于如何在MongoDB中创建和删除数据库,下面我们来看具体的操作内容。1、在MongoDB中创建数据库列出数据库:首先检查系统中的当前数据库。首先我们应该知道MongoDB没有提供任何创建数据库的命令。那么我们将如何创建数据库?答案是我们不在MongoDB中创建数据库,我们只需要使用具有你需要名称的数据库,并且在数据库中保存单个记录来创建它就可以了。# mongo> show dbs;admin (empty)local 0.078GBtest 0.078GB使用新数据库:现在,如果我们想创建名为exampledb的数据库。只需运行以下命令并在数据库中保存一条记录。保存第一个示例后,将看到已创建新数据库。> use exampledb;> s = { Name : "TecAdmin.net" }> db.testData.insert( s );列出数据库:现在,如果列出数据库,将看到新数据库将是名称为exampledb的数据库。> show dbs;admin (empty)local 0.078GBexampledb 0.078GBtest 0.078GB2、删除MongoDB中的数据库MongoDB提供了dropDatabase()命令来删除当前使用的数据库及其关联的数据文件。在删除之前,请确保使用db命令选择了哪个数据库。> dbexampledb现在,如果执行dropdatabase()命令。它将删除ExampleDB数据库。> db.dropDatabase();{ "dropped" : "exampledb", "ok" : 1 }要从Linux命令行或shell脚本中删除MongoDB数据库,请使用以下命令# mongoexampledb--eval "db.dropDatabase()"本篇文章到这里就已经全部结束了,更多其他精彩内容可以关注PHP中文网的MySQL视频教程栏目!

怎么连接mongo数据库(连接mongodb)

怎么连接mongo数据库
1在这里使用的是MongoVUE进行连接,安装完成mongo客户端后,点击mongo的图标,启动运行程序
2打开面板后在界面的左上角有一个可点击的菜单【connect】连接按钮,这里相信不用我说读者就知道。
3点击后,显示出配置的连接数据库会话名。
4读者需要选择一个数据库的连接,然后点击下方的【Connect】连接
5如果读者没有配置连接需要点击下图红色方框选中的“”号,点击进行创建一个连接。
6下面就是配置数据库的连接信息,IP、端口、口令等
7连接进入后可以看到对应的数据库中所有的表,将鼠标移至需要的表格,然后鼠标右键,选择view(视图)
8打开后选择第二个视图--TableView,表格视图,就可以看到数据库表中的数据和字段名称。

如何使用Nodejs连接mongodb数据库教程详解

这篇文章主要介绍了使用Nodejs连接mongodb数据库的实现代码,需要的朋友可以参考下一个简单的nodejs连接mongodb示例,来自 mongodb官方示例1. 创建package.json首先,创建我们的工程目录connect-mongodb,并作为我们的当前目录输入npm init命令创建package.json然后,安装mongodb的nodejs版本drivermongodb驱动包将会安装到当前目录下的node_modules中2. 启动MongoDB服务器安装MongoDB并启动MongoDB数据库服务,可参考我之前的文章,或者MongoDB官方文档3. 连接MongoDB创建一个app.js文件,并添加以下代码来连接服务器地址为192.168.0.243,mongodb端口为27017上名称为myNewDatabase的数据库在命令行输入以下命令运行app.js4. 插入文档在app.js中添加以下代码,使用insertMany方法添加3个文档到documents集合中insert命令返回一个包含以下属性的对象:result MongoDB返回的文档结果ops 添加了_id字段的文档connection 执行插入操作所使用的connection在app.js更新以下代码调用insertDocuments方法在命令行中使用node app.js运行5. 查询所有文档添加findDocuments函数findDocuments函数查询了所有'documents'集合中所有的文档,将此函数添加到MongoClient.connect的回调函数中6. 使用过滤条件(query filter)查询文档查询'a':3的文档7. 更新文档updateDocument方法更新满足条件a为2的第一个文档,新增一个b属性,并将其设置为1。将updateDocument方法添加到MongoClient.connect方法的回调中8. 删除文档添加到app.js中9. 创建索引索引能够改善应用的性能。下面你代码在'a'属性上添加索引更新app.js

MongoDB数据读写的几种方法

1、MongoDB Shell Script mongoDB的命令行使用的是类似JavaScript脚本的命令行交互,所以我们可以在shell当中使用JS的一些命令、函数等。 输入mongo命令启动mongo控制台 然后参考官方文档操作mongo数据。 常用命令有 show dbsuse db-nameshow collectionsdb. 1、MongoDB Shell ScriptmongoDB的命令行使用的是类似JavaScript脚本的命令行交互,所以我们可以在shell当中使用JS的一些命令、函数等。输入mongo命令启动mongo控制台然后参考官方文档操作mongo数据。常用命令有show dbsuse db-nameshow collectionsdb.collection.find()db.collection.findOne()db.collection.remove(args)db.collection.insert(args)等。CURD操作可以参考官方文档。如果要生成大量测试数据,我们可以在mongo shell里面写一个for循环,for (var i = 1; i function insertData(dbName, colName, num) { var col = db.getSiblingDB(dbName).getCollection(colName); for (i = 0; i col.insert({x:i}); } print(col.count());}如何运行这个函数呢?有两种方法:1、将其放入"~/.mongorc.js"这个文件内2、将其保存为script.js,然后运行mongo控制台时输入如下命令,会得到后台执行:mongo SERVER:PORT/dbname --quiet script.jsmongo控制台启动命令还有好多参数,可以参考官方文档。2、利用MongoDB JAR包编写Java代码访问Mongo数据库下载MongoDB Java Driver:点击打开链接添加进Java Project内。具体API文档可以点击这里。Small Task下面以一个任务为例说明用法。任务描述:定时删除三个月前的article。其中每个article与一个聚类相关联,同时数据库中还有聚类(cluster)的数据信息。每次删除article完成后,删除对应的那些无任何文章关联的聚类。数据类型如下:{ "_id" : ObjectId("52df7de966f0bc5d1bf4497d"), "clusterId" : 21, "docId" : 2, "title" : "test article 1", "type" : "article" }任务分析:1、首先需要依据条件查询到符合“三个月前的”文章数据;2、提取所有article的id构建成一个列表;3、提取所有涉及到的cluster的id构建成一个没有重复元素的列表;4、删除所有满足条件的article;5、判断每个cluster是否已经为空,若是则进行删除聚类操作。Java代码如下:import java.net.UnknownHostException;import java.util.ArrayList;import java.util.HashSet;import com.mongodb.BasicDBObject;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBCursor;import com.mongodb.DBObject;import com.mongodb.Mongo;import com.mongodb.QueryBuilder;public class MongoMainTest { static int today = 0; static int threeMonth = 0; static DBObject documentFields = new BasicDBObject(); static DBObject clusterFields = new BasicDBObject(); static { //此处键值设为true即代表作为返回结果键值 返回 documentFields.put("_id", true); documentFields.put("docId", true); documentFields.put("clusterId", true); documentFields.put("type", true); clusterFields.put("clusterId", true); clusterFields.put("type", true); } // DBCursor cursor = instanceDB.find(new BasicDBObject("assign", vouch),DocumentFields); /** * @param args */ public static void main(String[] args) { Mongo m = null; try { m = new Mongo( "10.211.55.7" , 27017 ); } catch (UnknownHostException e) { e.printStackTrace(); System.exit(0); } DB db = m.getDB("clusterDb");// List dbs = m.getDatabaseNames();// System.out.println(dbs);// DBCollection coll = db.getCollection("rkCol");// BasicDBObject doc = new BasicDBObject("docId",2); //此处为书写查询方法一// DBCursor curs = coll.find(doc);// DBObject obj = (DBObject)JSON.parse("{docId: 2}"); //书写查询方法二// curs = coll.find(obj);// while(curs.hasNext()) {// System.out.println("Cursor Count: "+curs.count());// System.out.println(curs.next());// } DBCollection coll = db.getCollection("rkCol"); QueryBuilder queryBuilder = new QueryBuilder(); DBObject articleQuery = new BasicDBObject("type", "article")//; .append("timestamp", new BasicDBObject("$lt", today-threeMonth)) .append("clusterId", true); //书写查询方法三 queryBuilder.and(articleQuery); //书写查询方法四 DBCursor curs = coll.find(queryBuilder.get()); //注意方法四在实际使用时需要调用get方法生成具体query语句 ArrayList articles = new ArrayList(); //此处element类型均为Object HashSet clusters = new HashSet(); DBObject article = null; while(curs.hasNext()) { article = curs.next(); articles.add(article.get("_id")); clusters.add(article.get("clusterId")); } QueryBuilder removeBuilder = new QueryBuilder(); //注意下句使用了$in操作符,类似于{_id: articleID1} or {_id: articleID2} or {_id: articleID3} ... DBObject removeObject = new BasicDBObject("_id", new BasicDBObject("$in", articles)); removeBuilder.and(removeObject); /*打印结果*/ coll.remove(removeBuilder.get()); DBObject articleCountQuery = null; for(Object o: clusters) { articleCountQuery = new BasicDBObject("clusterId", o); curs = coll.find(articleCountQuery); if(curs.count() != 0) { clusters.remove(o); } } removeObject = new BasicDBObject("clusterId", new BasicDBObject("$in", clusters)); removeBuilder.and(removeObject); coll.remove(removeBuilder.get()); /** curs = coll.find(removeBuilder.get()); articles = new ArrayList(); clusters = new HashSet(); article = null; while(curs.hasNext()) { article = curs.next(); articles.add(article.get("_id")); clusters.add(article.get("clusterId")); } /**/ System.out.println(articles); System.out.println(clusters); }}定时操作,参考这篇博文,利用Java代码编程实现(利用开源库Quartz)。Linux的环境可以使用crontab工具,更为简单方便。此处所需要配合使用的JS代码简略。

阅读更多 >>>  java+mysql项目,javaweb怎么连接mysql数据库(javaweb项目连接MySQL数据库)

mongodb使用场景是什么?

使用场景:
(1)网站数据:MongoDB适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
(2)缓存:由于性能很高,MongoDB也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。
(3)大尺寸,低价值的数据。
(4)高伸缩性的场景:MongoDB适合由数十或数百台服务器组成的数据库。
(5)用于对象及JSON数据的存储:MongoDB的BSON数据格式适合文档化格式的存储及查询。
功能
1、面向集合的存储:适合存储对象及JSON形式的数据。
2、动态查询:MongoDB支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、完整的索引支持:包括文档内嵌对象及数组。MongoDB的查询优化器会分析查询表达式,并生成一个高效的查询计划。
4、查询监视:MongoDB包含一系列监视工具用于分析数据库操作的性能。
5、复制及自动故障转移:MongoDB数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。
6、高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。
7、自动分片以支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
使用场景:
(1)网站数据:MongoDB适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
(2)缓存:由于性能很高,MongoDB也适合作为信息基础设施的缓存层。在系统重启之后,由MongoDB搭建的持久化缓存层可以避免下层的数据源过载。
(3)大尺寸,低价值的数据。
(4)高伸缩性的场景:MongoDB适合由数十或数百台服务器组成的数据库。
(5)用于对象及JSON数据的存储:MongoDB的BSON数据格式适合文档化格式的存储及查询。
mongodb设计特点:
(1)面向集合存储,容易存储对象类型的数据。在MongoDB 中数据被分组存储在集合中,集合类似RDBMS 中的表,一个集合中可以存储无限多的文档。
(2)模式自由,采用无模式结构存储。在MongoDB 中集合中存储的数据是无模式的文档,采用无模式存储数据是集合区别于RDBMS 中的表的一个重要特征。
(3)支持完全索引,可以在任意属性上建立索引,包含内部对象。MongoDB的索引和RDBMS 的索引基本一样,可以在指定属性、内部对象上创建索引以提高查询的速度。除此之外,MongoDB 还提供创建基于地理空间的索引的能力。
(4)支持查询。MongoDB 支持丰富的查询操作,MongoDB 几乎支持SQL中的大部分查询。
(5)强大的聚合工具。MongoDB 除了提供丰富的查询功能外,还提供强大的聚合工具,如count、group 等,支持使用MapReduce 完成复杂的聚合任务。

linux如何安装和启动mongdb

.9.tgz 4. 解压后为了方面,对解压包进行重命名mv mongodb-linux-x86_64-4.0.9 mongodb409cd /opt/mongodb409 5. 进行环境变量配置vim /etc/profile.d/mongodb.sh编辑完之后:. /etc/profile.d/mongodb.sh配置文件编辑1.创建MongoDB数据存放文件夹和日志记录文件夹,为后面的配置文件使用mkdir -p /data/dbmkdir -p /logs2.配置文件:cd /opt/mongodb409/binvim mongodb.conf#auth=true #需要认证。如果放开注释,就必须创建MongoDB的账号,使用账号与密码才可远程访问,第一次安装建议注释bind_ip=0.0.0.0 #允许远程访问,或者直接注释,127.0.0.1是只允许本地访问启动MongoDB服务启动服务需要先切换带MongoDB的bin下:cd /opt/mongodb409/bin./mongod -f mongodb.conf启动客户端先cd 到执行目录下:cd /opt/mongodb409/bin./mongo关闭MongoDB 服务端方式一:cd /opt/mongodb409/bin# 关闭./mongod --shutdown方式二:查看端口和进程:netstat -nltp|grep 27017ps -ef | grep mongokill MongoDB的pid # 或kill -9 pid 强制杀死方式三:pkill mongod linux如何安装和启动mongdb标签:必须图片style服务端关闭file下载安装linux服务器技术

使用nodejs如何操作mongodb的填删改查模块

下面我就为大家分享一篇nodejs操作mongodb的填删改查模块的制作及引入实例,具有很好的参考价值,希望对大家有所帮助。安装相关模块如果使用这个的话,你需要先自己安装一下他需要的模块,在根目录输入npm install mongodb --save进行模块安装,安装成功以后就可以进行以下的步骤。文件的引入以下是我书写的相关代码,放到你可以引用的相关目录,本人放到了express的根目录function Mongo(options) { this.settings = { url: 'mongodb://localhost:27017/jk', MongoClient:require('mongodb').MongoClient, assert:require('assert') }; for(let i in options){ this.settings[i] = options[i]; } this._run = function (fun) { let that = this; let settings = this.settings; this.settings.MongoClient.connect(this.settings.url, function (err, db) { settings.assert.equal(null, err); console.log("Connected correctly to server"); fun(db, function () { db.close(); }); }); }; this.insert = function (collectionName, data, func) { //增加数据 let insertDocuments = function (db, callback) { let collection = db.collection(collectionName); collection.insertMany([ data ], function (err, result) { if (!err) { func(true); } else { func(false); } callback(result); }); }; this._run(insertDocuments); }; this.update = function (collectionName, updateData, data, func) { //更新数据 let updateDocument = function (db, callback) { let collection = db.collection(collectionName); collection.updateOne(updateData , {$set: data}, function (err, result) { if (!err) { func(true); } else { func(false); } callback(result); }); }; this._run(updateDocument); }; this.delete = function (collectionName, data, func) { //删除数据 let deleteDocument = function (db, callback) { let collection = db.collection(collectionName); collection.deleteOne(data, function (err, result) { if (!err) { func(true); } else { func(false); } callback(result); }); }; this._run(deleteDocument); }; this.find = function (collectionName, data, func) { //查找数据 let findDocuments = function (db, callback) { // Get the documents collection let collection = db.collection(collectionName); // Find some documents collection.find(data).toArray(function (err, docs) { if (!err) { func(true,docs); } else { func(false, err); } callback(docs); }); }; this._run(findDocuments); };}module.exports = Mongo;我存入到了一个名字叫server.js的文件名内使用我们在需要使用页面先将模块引入,比如我在路由文件index.js里面引入:const Server = require("../server.js");然后需要实例化对象,如下:let server = new Server();如果需要配置相关信息,可以在实例化的时候传入一个对象配置,可以配置数据库的地址:let server = new Server({url:"mongodb://localhost:27017/mydb"});里面封装了四个方法,添删改查,分别是添加方法server.insert(数据表名,需要插入的数据(键值对的对象),回调函数);更新方法server.update(数据表名,查询的数据(对象),更新的数据(对象),回调函数);删除方法server.delete(数据表名,查询的数据(对象),回调函数);查找方法server.find(数据表名,查询的数据(对象),回调函数);回调函数都会返回两个值,第一个布尔类型,是否处理成功,第二个值,查找返回查找到的个数,别的都返回处理成功的个数(现在一次只处理一条)使用案例比如我需要在一个路由里面查找数据,我就需要这样:server.find("users",{username:"username"},function (bool,data) { if(bool){ console.log("查询到数据为"+data.length+"条"); } else{ console.log(data); } });});上面的代码是查询了users表里面username为username的字段的数据,如果成功,后面data就会返回一个数组,如果出现错误,就直接返回data错误。上面是我整理给大家的,希望今后会对大家有帮助。相关文章:MySQL修改root密码如何编写有质量的JS代码js数组reduce的相关用法

阅读更多 >>>  创建linux文件系统命令是

MongoDB 如何存储多级嵌套数据及操作增删改查?

针对这个需求,可以考虑使用 MongoDB 的嵌套文档来存储权限列表。可以将权限列表存储为一个文档,其中每个权限都是一个嵌套的子文档。下面是一个示例文档:
{
"_id": ObjectId("123456789012345678901234"),
"name": "权限列表",
"access": [
{
"id": "1",
"name": "权限1",
"code": "code1",
"children": [
{
"id": "11",
"name": "权限1-1",
"code": "code1-1"
},
{
"id": "12",
"name": "权限1-2",
"code": "code1-2",
"children": [
{
"id": "121",
"name": "权限1-2-1",
"code": "code1-2-1"
}
]
}
]
},
{
"id": "2",
"name": "权限2",
"code": "code2",
"children": [
{
"id": "21",
"name": "权限2-1",
"code": "code2-1"
}
]
}
]
}
在上面的示例文档中,access 是一个数组,其中每个元素都是一个权限对象,每个权限对象中包含 id、name、code 和 children 四个属性。如果一个权限有子权限,那么它的 children 属性就是一个嵌套的权限对象数组。
对于操作数据的需求,可以使用 MongoDB 的官方驱动程序或者第三方库(如 Mongoose)来操作数据。下面是一些示例代码:
查询权限
使用 find 方法查询权限文档,并将 access 数组返回即可。
const collection = db.collection('permissions');
const doc = await collection.findOne({});
const access = doc.access;
const collection = db.collection('permissions');
const doc = await collection.findOne({});
const access = doc.access;
const collection = db.collection('permissions');
const parentId = '1';
const { name, code } = req.body;
const newAccess = {
id: '13',
name,
code
};
const result = await collection.updateOne(
{ 'access.id': parentId },
{ $push: { 'access.$.children': newAccess } }
);
const collection = db.collection('permissions');
const parentId = '1';
const { name, code } = req.body;
const newAccess = {
id: '13',
name,
code
};
const result = await collection.updateOne(
{ 'access.id': parentId },
{ $push: { 'access.$.children': newAccess } }
);
在上面的代码中,使用 updateOne 方法更新权限文档。第一个参数是一个查询条件,用于定位需要更新的文档。这里使用 access.id 来查询权限文档,找到对应的权限记录。第二个参数是一个更新操作,使用 $push 操作符将新的权限对象添加到 access.$.children 数组中。$ 符号代表数组中匹配到的第一个元素。
编辑权限
使用 $set 操作符更新指定权限对象的 name 和 code 属性。
const collection = db.collection('permissions');
const id = '1';
const { name, code } = req.body;
const result
如果回答不够完整,请指出!
希望能帮上忙

mongoDB主要使用在什么场景?

MongoDB的应用已经渗透到各个领域,比如游戏、物流、电商、内容管理、社交、物联网、视频直播等,以下是几个实际的应用案例:

? ??●? ? 游戏场景:使用MongoDB存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新。

? ??●? ? 物流场景:使用MongoDB存储订单信息,订单状态在运送过程中会不断更新,以MongoDB内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。

? ??●? ? 社交场景:使用MongoDB存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。

? ??●? ? 物联网场景:使用MongoDB存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。

? ??●? ? 视频直播:使用MongoDB存储用户信息、礼物信息等。

网站数据信息

"mongodb使用,如何在MongoDB中创建和删除数据库"浏览人数已经达到21次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:mongodb使用,如何在MongoDB中创建和删除数据库的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!