http://blog.chinaunix.net/uid-21209537-id-3449721.html
使用mongodb进行增删改查等基本操作。本例使用 mongodb-win32-i386-2.0.8 , 在windows xp下进行测试。 MongoDB客户端和服务端都运行在本地(同一台机器)。
1.安装MongoDB
1.1.下载mongodb,并解压,本例安装在D:\J2ee\mongodb-win32-i386-2.0.8
1.2.使用mongod.exe启动mongodb
$MongoDB-folder/bin/mongod
点击(此处)折叠或打开
- D:\J2ee\mongodb-win32-i386-2.0.8\bin>mongod
- mongod --help for help and startup options
- Mon Dec 24 14:56:35
- Mon Dec 24 14:56:35 warning: 32-bit servers don't have journaling enabled by def
- ault. Please use --journal if you want durability.
- Mon Dec 24 14:56:35
- Mon Dec 24 14:56:35 [initandlisten] MongoDB starting : pid=1452 port=27017 dbpat
- h=/data/db 32-bit host=chenzhengwei
- Mon Dec 24 14:56:35 [initandlisten]
- Mon Dec 24 14:56:35 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are
- limited to about 2 gigabytes of data
- Mon Dec 24 14:56:35 [initandlisten] ** see http://blog.mongodb.org/post/13
- 7788967/32-bit-limitations
- Mon Dec 24 14:56:35 [initandlisten] ** with --journal, the limit is lower
- Mon Dec 24 14:56:35 [initandlisten]
- Mon Dec 24 14:56:35 [initandlisten] db version v2.0.8, pdfile version 4.5
- Mon Dec 24 14:56:35 [initandlisten] git version: a340a57af7cdda865da420704e1d1b2
- fac0cedc2
- Mon Dec 24 14:56:35 [initandlisten] build info: windows sys.getwindowsversion(ma
- jor=6, minor=0, build=6002, platform=2, service_pack='Service Pack 2') BOOST_LIB
- _VERSION=1_42
- Mon Dec 24 14:56:35 [initandlisten] options: {}
- Mon Dec 24 14:56:35 [initandlisten] exception in initAndListen: 10296 dbpath (/d
- ata/db) does not exist, terminating
- Mon Dec 24 14:56:35 dbexit:
- Mon Dec 24 14:56:35 [initandlisten] shutdown: going to close listening sockets..
- .
- Mon Dec 24 14:56:35 [initandlisten] shutdown: going to flush diaglog...
- Mon Dec 24 14:56:35 [initandlisten] shutdown: going to close sockets...
- Mon Dec 24 14:56:35 [initandlisten] shutdown: waiting for fs preallocator...
- Mon Dec 24 14:56:35 [initandlisten] shutdown: closing all files...
- Mon Dec 24 14:56:35 [initandlisten] closeAllFiles() finished
- Mon Dec 24 14:56:35 dbexit: really exiting now
以上并没有启动mongod,抛出了以下异常信息:
点击(此处)折叠或打开
- Mon Dec 24 14:56:35 [initandlisten] exception in initAndListen: 10296 dbpath (/d
- ata/db) does not exist, terminating
即dbpath(/data/db)不存在
正确方法,创建目录D:\J2ee\mongodb-win32-i386-2.0.8\data,用于mongodb存放数据。
执行以下命令:
点击(此处)折叠或打开
- D:\J2ee\mongodb-win32-i386-2.0.8\bin>mongod -dbpath D:\J2ee\mongodb-win32-i386-2
- .0.8\data
- Mon Dec 24 15:17:03
- Mon Dec 24 15:17:03 warning: 32-bit servers don't have journaling enabled by def
- ault. Please use --journal if you want durability.
- Mon Dec 24 15:17:03
- Mon Dec 24 15:17:03 [initandlisten] MongoDB starting : pid=5884 port=27017 dbpat
- h=D:\J2ee\mongodb-win32-i386-2.0.8\data 32-bit host=chenzhengwei
- Mon Dec 24 15:17:03 [initandlisten]
- Mon Dec 24 15:17:03 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are
- limited to about 2 gigabytes of data
- Mon Dec 24 15:17:03 [initandlisten] ** see http://blog.mongodb.org/post/13
- 7788967/32-bit-limitations
- Mon Dec 24 15:17:03 [initandlisten] ** with --journal, the limit is lower
- Mon Dec 24 15:17:03 [initandlisten]
- Mon Dec 24 15:17:03 [initandlisten] db version v2.0.8, pdfile version 4.5
- Mon Dec 24 15:17:03 [initandlisten] git version: a340a57af7cdda865da420704e1d1b2
- fac0cedc2
- Mon Dec 24 15:17:03 [initandlisten] build info: windows sys.getwindowsversion(ma
- jor=6, minor=0, build=6002, platform=2, service_pack='Service Pack 2') BOOST_LIB
- _VERSION=1_42
- Mon Dec 24 15:17:03 [initandlisten] options: { dbpath: "D:\J2ee\mongodb-win32-i3
- 86-2.0.8\data" }
- Mon Dec 24 15:17:03 [initandlisten] waiting for connections on port 27017
- Mon Dec 24 15:17:03 [websvr] admin web console waiting for connections on port 2
- 8017
2. 连接MongoDB
再打开一个命令行,执行以下mongo命令:
点击(此处)折叠或打开
- D:\J2ee\mongodb-win32-i386-2.0.8\bin>mongo
- MongoDB shell version: 2.0.8
- connecting to: test
- >
3. 创建数据库和表
mongodb中使用以下命令,切换到某个数据库(即使它还不存在)
use database-name
mongodb中当你往一个表里面插入一条记录时,相应的表和数据库就被自动创建好了。具体看下面的例子:
点击(此处)折叠或打开
- D:\J2ee\mongodb-win32-i386-2.0.8\bin>mongo
- MongoDB shell version: 2.0.8
- connecting to: test
- > use mydb
- switched to db mydb
- > db.users.insert({username:"henry",password:"123456"})
- > db.users.find()
- { "_id" : ObjectId("50d803393cc996b4e8ce22de"), "username" : "henry", "password"
- : "123456" }
- >
以下是三个常用的命令
点击(此处)折叠或打开
- show dbs – List all databases.
- use db_name – Switches to db_name.
- show collections – List all tables in the current selected database.
点击(此处)折叠或打开
- > show dbs
- local (empty)
- mydb 0.03125GB
- > use mydb
- switched to db mydb
- > show collections
- system.indexes
- users
- >
Note
In MongoDB, collection means table in SQL.
4. 插入一条记录
插入记录的语法的两种方式:
点击(此处)折叠或打开
- db.tablename.insert({data}) or db.tablename.save({data})
点击(此处)折叠或打开
- > db.users.save({username:"google",password:"google123"})
- > db.users.find()
- { "_id" : ObjectId("50d803393cc996b4e8ce22de"), "username" : "henry", "password": "123456" }
- { "_id" : ObjectId("50d8046a3cc996b4e8ce22df"), "username" : "google", "password" : "google123" }
5. 更新记录
更新一条记录语法:
db.tablename.update({criteria},{$set: {new value}}).
下面的例子中更新用户henry的密码:
点击(此处)折叠或打开
- > db.users.update({username:"henry"},{$set:{password:"henry123456"}})
- > db.users.find()
- { "_id" : ObjectId("50d8046a3cc996b4e8ce22df"), "username" : "google", "password" : "google123" }
- { "_id" : ObjectId("50d803393cc996b4e8ce22de"), "password" : "henry123456", "username" : "henry" }
- >
6. 查询记录
查找记录的语法:
db.tablename.find({criteria}).
6.1 列出users表中的所有记录
点击(此处)折叠或打开
- > db.users.find()
- { "_id" : ObjectId("50d8046a3cc996b4e8ce22df"), "username" : "google", "password" : "google123" }
- { "_id" : ObjectId("50d803393cc996b4e8ce22de"), "password" : "henry123456", "username" : "henry" }
- >
6.2 查询username 为henry的记录
点击(此处)折叠或打开
- > db.users.find({username:"henry"})
- { "_id" : ObjectId("50d803393cc996b4e8ce22de"), "password" : "henry123456", "username" : "henry" }
7. 删除记录
删除记录的语法:
db.tablename.remove({criteria}).
下面的例子
点击(此处)折叠或打开
- > db.users.remove({username:"google"})
- > db.users.find()
- { "_id" : ObjectId("50d803393cc996b4e8ce22de"), "password" : "henry123456", "username" : "henry" }
- >
Note
To delete all records from a table, uses db.tablename.remove().
To drop the table, uses db.tablename.drop().
8. 索引
Index(索引)可以提高查询的效率
8.1 List all indexes of table “users”, by default the column “_id” is always the primary key and created automatically.
点击(此处)折叠或打开
- > db.users.getIndexes()
- [
- {
- "v" : 1,
- "key" : {
- "_id" : 1
- },
- "ns" : "mydb.users",
- "name" : "_id_"
- }
- ]
- >
8.2 To create an index, uses db.tablename.ensureIndex(column). In below example, an index is created on column “username”.
点击(此处)折叠或打开
- > db.users.ensureIndex({username:1})
- > db.users.getIndexes()
- [
- {
- "v" : 1,
- "key" : {
- "_id" : 1
- },
- "ns" : "mydb.users",
- "name" : "_id_"
- },
- {
- "v" : 1,
- "key" : {
- "username" : 1
- },
- "ns" : "mydb.users",
- "name" : "username_1"
- }
- ]
- >
8.3 To drop an index, uses db.tablename.dropIndex(column). In below example, the index on column “username” is deleted or dropped.
点击(此处)折叠或打开
- > db.users.dropIndex({username:1})
- { "nIndexesWas" : 2, "ok" : 1 }
- > db.users.getIndexes()
- [
- {
- "v" : 1,
- "key" : {
- "_id" : 1
- },
- "ns" : "mydb.users",
- "name" : "_id_"
- }
- ]
- >
8.4 To create an unique index, uses db.tablename.ensureIndex({column},{unique:true}). In below example, an unique index is created on column “username”.
点击(此处)折叠或打开
- > db.users.ensureIndex({username:1},{unique:true});
- > db.users.getIndexes()
- [
- {
- "v" : 1,
- "key" : {
- "_id" : 1
- },
- "ns" : "mydb.users",
- "name" : "_id_"
- },
- {
- "v" : 1,
- "key" : {
- "username" : 1
- },
- "unique" : true,
- "ns" : "mydb.users",
- "name" : "username_1"
- }
- ]
- >
10. 帮助
At last, uses help() to guide you how to do things in MongoDB.
10.1 help – All available commands.
点击(此处)折叠或打开
- > help
- db.help() help on db methods
- db.mycoll.help() help on collection methods
- rs.help() help on replica set methods
- help admin administrative help
- help connect connecting to a db help
- help keys key shortcuts
- //...
10.2 db.help() – Shows help on db.
点击(此处)折叠或打开
- > db.help()
- DB methods:
- db.addUser(username, password[, readOnly=false])
- db.auth(username, password)
- db.cloneDatabase(fromhost)
- db.commandHelp(name) returns the help for the command
- db.copyDatabase(fromdb, todb, fromhost)
- db.createCollection(name, { size : ..., capped : ..., max : ... } )
- db.currentOp() displays the current operation in the db
- db.dropDatabase()
- db.eval(func, args) run code server-side
- db.getCollection(cname) same as db['cname'] or db.cname
- db.getCollectionNames()
- db.getLastError() - just returns the err msg string
- db.getLastErrorObj() - return full status object
- db.getMongo() get the server connection object
- db.getMongo().setSlaveOk() allow this connection to read from the nonmas
- ter member of a replica pair
- db.getName()
- db.getPrevError()
- db.getProfilingLevel() - deprecated
- db.getProfilingStatus() - returns if profiling is on and slow threshold
- db.getReplicationInfo()
- db.getSiblingDB(name) get the db at the same server as this one
- db.isMaster() check replica primary status
- db.killOp(opid) kills the current operation in the db
- db.listCommands() lists all the db commands
- db.logout()
- db.printCollectionStats()
- db.printReplicationInfo()
- db.printSlaveReplicationInfo()
- db.printShardingStatus()
- db.removeUser(username)
- db.repairDatabase()
- db.resetError()
- db.runCommand(cmdObj) run a database command. if cmdObj is a string, tu
- rns it into { cmdObj : 1 }
- db.serverStatus()
- db.setProfilingLevel(level,) 0=off 1=slow 2=all
- db.shutdownServer()
- db.stats()
- db.version() current version of the server
- db.getMongo().setSlaveOk() allow queries on a replication slave server
- db.fsyncLock() flush data to disk and lock server for backups
- db.fsyncUnock() unlocks server following a db.fsyncLock()
- >
10.3 db.collection.help() – Shows help on collection (table).
点击(此处)折叠或打开
- > db.users.help()
- DBCollection help
- db.users.find().help() - show DBCursor help
- db.users.count()
- db.users.dataSize()
- db.users.distinct( key ) - eg. db.users.distinct( 'x' )
- db.users.drop() drop the collection
- db.users.dropIndex(name)
- //...
10.4 db.collection.function.help() – Shows help on function.
点击(此处)折叠或打开
- > db.users.find().help()
- find() modifiers
- .sort( {...} )
- .limit( n )
- .skip( n )
- .count() - total # of objects matching query, ignores skip,limit
- .size() - total # of objects cursor would return, honors skip,limit
- .explain([verbose])
- //...
Done. Hope this summary of MongoDB commands could help others.
References
Official MongoDB tutorials
MongoDB Indexes
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/
相关推荐
本教程将详细介绍如何使用Java与MongoDB进行交互,包括基本的增删改查(CRUD)操作。首先,我们需要引入MongoDB的Java驱动程序,这通常通过Maven或Gradle的依赖管理来实现。 1. **添加依赖** 在Maven的`pom.xml`...
在Java开发中,我们可以使用MongoDB的Java驱动程序来实现对MongoDB数据库的增、删、改、查(CRUD)操作。以下是对这些核心功能的详细说明。 1. **增加(Create)** 要在MongoDB中插入数据,我们需要使用`...
本教程将详细介绍如何使用C#访问MongoDB,实现基本的增删改查操作。 首先,我们需要在C#项目中引入MongoDB的驱动程序。MongoDB官方提供了`MongoDB.Driver`库,可以通过NuGet包管理器安装。在Visual Studio中,右键...
这需要用到MongoDB的更新操作。 8. **博客删除**: 删除博客可能需要在用户确认后执行删除操作,这需要查询到要删除的博客,然后使用MongoDB的删除方法来移除。 9. **权限控制**: 权限控制是保证系统安全的重要环节...
在本案例"MongoDB增删改查操作案例-用户信息增删改查.zip"中,我们将探讨如何使用MongoDB进行基本的数据操作,包括添加(Add)、删除(Delete)、修改(Update)和查询(Query)用户信息。 1. 添加操作(Add): 在...
在Java应用程序中,我们可以使用MongoDB Java驱动程序来与MongoDB进行交互,执行基本的数据库操作,如增(添加)、删(删除)、改(更新)和查(查询)。下面将详细介绍这些操作。 1. 添加(Add) 要向MongoDB集合...
在本项目中,我们将探讨如何使用MongoDB进行数据的增删改查操作,以及如何结合前端页面、IntelliJ IDEA开发环境、Thymeleaf模板引擎和MyBatis持久层框架来构建一个完整的应用程序。 首先,让我们深入了解MongoDB的...
本教程将详细介绍如何使用Java进行MongoDB的基本操作,包括增(添加数据)、删(删除数据)、改(修改数据)和查(查询数据)。 首先,你需要在项目中引入MongoDB的Java驱动程序。目前最新的稳定版本是`mongodb-...
通过学习和实践这些示例,你将能够熟练地在Java应用程序中与MongoDB进行交互,进行数据的增删改查操作。在实际项目中,你可能还需要关注错误处理、连接池管理、事务支持等方面,以确保应用程序的健壮性和性能。
它的增删改查操作简单易用,配合分页技术,能有效地管理和检索大量数据。学习这些基本操作,对于理解和使用MongoDB进行数据管理至关重要。通过实践这些示例,你将能够快速上手MongoDB,并为构建高效的数据驱动应用...
本篇文章将详细讲解如何使用Java连接到MongoDB数据库,并进行基本的增删改查操作。 首先,连接MongoDB需要引入MongoDB的Java驱动程序。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org....
在本文中,我们将深入探讨如何使用Node.js连接MongoDB数据库并实现基本的增删改查操作。MongoDB是一个流行的文档型数据库系统,而Node.js则是一个JavaScript运行环境,非常适合构建实时、高性能的网络应用。结合...
本篇将详细讲解如何使用C#实现对MongoDB的增删改查操作,并提供经过测试验证的源代码。 首先,我们需要引入MongoDB的C#驱动程序,它提供了与MongoDB数据库进行通信的类和方法。在NuGet包管理器中,可以搜索并安装`...
### Java操作MongoDB进行增删改查详解 #### 一、引言 在现代软件开发中,非关系型数据库如MongoDB因其灵活性和扩展性而备受青睐。Java作为一种广泛使用的编程语言,在操作MongoDB时提供了丰富的API支持。本文将详细...
在这个“MongoDb增删改查的网站范例”中,我们将探讨如何利用Spring Data项目和MongoDB适配器进行数据库操作。 Spring Data是一个强大的框架,它简化了与各种数据存储系统的交互,包括MongoDB。Spring Data MongoDB...
以上就是使用Node.js操作MongoDB实现增删改查的基本步骤。随着对这两个技术的深入理解和实践,你将能够构建更复杂、功能丰富的应用程序。请参考提供的文章链接以获取更多细节和示例,同时持续学习和探索Node.js和...
本源码提供了一个基于Html的crud-express-mongodb增删改查设计。项目包含1586个文件,其中包括928个JavaScript文件、193个Markdown文档、138个JSON文件、71个Less样式文件、21个TypeScript文件、19个YAML文件、15个...
在本文中,我们将深入探讨如何使用Express 4.x框架与MongoDB数据库来实现Web应用程序中的基本CRUD(创建、读取、更新、删除)操作。Express是Node.js平台上的一个流行web应用框架,它提供了构建高效、灵活的HTTP...
下面我们将详细讨论MongoDB的基本增删改查操作。 ### 增(Add) 在MongoDB中,添加数据到集合(相当于关系型数据库中的表)主要通过`insertOne()`或`insertMany()`方法实现。例如,如果我们有一个名为`users`的...
增删改查(CRUD)是数据库操作的基本动作。在用户管理中,"增"即增加新用户,"删"是删除用户账户,"改"为修改用户信息,"查"是查询用户信息。在Java中,我们可以创建Service层来封装这些业务逻辑,然后通过DAO(数据...