在命令行下,输入help可以看到基本操作命令:
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use <db name>:切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
------------------------------------------------
大致的说明一下MongoDB中的数据格式,我没有去详细的查看官方的文档,只是按我试用过的感觉来说,其数据结构,类似JSON,即key-value成对,key一般就是String,而value而无所谓了
,如一个JSON数据:
{
name:"凤姐",
birthday:{
year:1987,
month:1,
day:20
}
}
只要你愿意,就可以把Value不断的复杂化,以方便存储数据
-----------------------------------------------------------
要使用Java操作MongoDB的话,要到官方网站下载一个驱动包,点击网站上的Drivers里面,可以看到目前支持的语言,非常的多……把包导入后,可以尝试来操作了(记得一定要开着服务器
)
首先介绍一下比较常用的几个类
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
接下来实际的操作一下,代码如下:
01
import com.mongodb.*;
02
03
public class Main {
04
public static void main(String[] args) {
05
try{
06
Mongo m = new Mongo("127.0.0.1");
07
//选择数据库,如果没有这个数据库的话,会自动建立
08
DB db = m.getDB("mongo");
09
//列出所有数据库名,不过发现,如果数据库里面是没有数据的话,并不会被列出来
10
System.out.println("数据库列表:"+m.getDatabaseNames());
11
12
//建立一个集合,和数据库一样,如果没有,会自动建立
13
DBCollection col = db.getCollection("col");
14
//列出所有集合名,和数据库一样,如果集合里面是没有数据的话,并不会被列出来
15
System.out.println("当前数据库下的集合列表:"+db.getCollectionNames());
16
17
//建立一个数据项,重复执行会多次添加一样的数据
18
BasicDBObject val = new BasicDBObject();
19
val.put("name", "凤姐");
20
col.save(val);
21
//保存的数据为
22
//{ "_id" : "4b8de2f3053068a371e870c0" , "name" : "凤姐"}
23
//_id是系统自动帮加上的,全局唯一
24
//多次加入一样的数据时,_id都是不一样的
25
26
//取得所有数据并打印出来
27
DBCursor ite = col.find();
28
while(ite.hasNext())
29
{
30
System.out.println(ite.next());
31
}
32
}catch(Exception error)
33
{
34
error.printStackTrace();
35
}
36
}
37
}
----------------------------更新操作--------------------------
01
import com.mongodb.*;
02
03
public class Main {
04
public static void main(String[] args) {
05
try{
06
Mongo m = new Mongo("127.0.0.1");
07
DB db = m.getDB("mongo");
08
DBCollection col = db.getCollection("col");
09
10
System.out.println("修改前:");
11
showData(col);
12
13
//查找所有 name=凤姐 的项,并更新
14
BasicDBObject old_val = new BasicDBObject(),new_val = new BasicDBObject();
15
old_val.put("name", "凤姐无敌");
16
new_val.put("name", "凤姐无敌");
17
col.update(old_val, new_val);//只会更新一个
18
//col.updateMulti(new_val, old_val)不知道怎么回事,这函数不顶用
19
20
System.out.println("修改后:");
21
showData(col);
22
}catch(Exception error)
23
{
24
error.printStackTrace();
25
}
26
}
27
28
static void showData(DBCollection col)
29
{
30
DBCursor ite = col.find();
31
while(ite.hasNext())
32
{
33
System.out.println(ite.next());
34
}
35
}
36
}
show dbs:显示数据库列表
show collections:显示当前数据库中的集合(类似关系数据库中的表)
show users:显示用户
use <db name>:切换当前数据库,这和MS-SQL里面的意思一样
db.help():显示数据库操作命令,里面有很多的命令
db.foo.help():显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合,并非真正意义上的命令
db.foo.find():对于当前数据库中的foo集合进行数据查找(由于没有条件,会列出所有数据)
db.foo.find( { a : 1 } ):对于当前数据库中的foo集合进行查找,条件是数据中有一个属性叫a,且a的值为1
------------------------------------------------
大致的说明一下MongoDB中的数据格式,我没有去详细的查看官方的文档,只是按我试用过的感觉来说,其数据结构,类似JSON,即key-value成对,key一般就是String,而value而无所谓了
,如一个JSON数据:
{
name:"凤姐",
birthday:{
year:1987,
month:1,
day:20
}
}
只要你愿意,就可以把Value不断的复杂化,以方便存储数据
-----------------------------------------------------------
要使用Java操作MongoDB的话,要到官方网站下载一个驱动包,点击网站上的Drivers里面,可以看到目前支持的语言,非常的多……把包导入后,可以尝试来操作了(记得一定要开着服务器
)
首先介绍一下比较常用的几个类
Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等
DB:对应一个数据库,可以用来建立集合等操作
DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等
DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
接下来实际的操作一下,代码如下:
01
import com.mongodb.*;
02
03
public class Main {
04
public static void main(String[] args) {
05
try{
06
Mongo m = new Mongo("127.0.0.1");
07
//选择数据库,如果没有这个数据库的话,会自动建立
08
DB db = m.getDB("mongo");
09
//列出所有数据库名,不过发现,如果数据库里面是没有数据的话,并不会被列出来
10
System.out.println("数据库列表:"+m.getDatabaseNames());
11
12
//建立一个集合,和数据库一样,如果没有,会自动建立
13
DBCollection col = db.getCollection("col");
14
//列出所有集合名,和数据库一样,如果集合里面是没有数据的话,并不会被列出来
15
System.out.println("当前数据库下的集合列表:"+db.getCollectionNames());
16
17
//建立一个数据项,重复执行会多次添加一样的数据
18
BasicDBObject val = new BasicDBObject();
19
val.put("name", "凤姐");
20
col.save(val);
21
//保存的数据为
22
//{ "_id" : "4b8de2f3053068a371e870c0" , "name" : "凤姐"}
23
//_id是系统自动帮加上的,全局唯一
24
//多次加入一样的数据时,_id都是不一样的
25
26
//取得所有数据并打印出来
27
DBCursor ite = col.find();
28
while(ite.hasNext())
29
{
30
System.out.println(ite.next());
31
}
32
}catch(Exception error)
33
{
34
error.printStackTrace();
35
}
36
}
37
}
----------------------------更新操作--------------------------
01
import com.mongodb.*;
02
03
public class Main {
04
public static void main(String[] args) {
05
try{
06
Mongo m = new Mongo("127.0.0.1");
07
DB db = m.getDB("mongo");
08
DBCollection col = db.getCollection("col");
09
10
System.out.println("修改前:");
11
showData(col);
12
13
//查找所有 name=凤姐 的项,并更新
14
BasicDBObject old_val = new BasicDBObject(),new_val = new BasicDBObject();
15
old_val.put("name", "凤姐无敌");
16
new_val.put("name", "凤姐无敌");
17
col.update(old_val, new_val);//只会更新一个
18
//col.updateMulti(new_val, old_val)不知道怎么回事,这函数不顶用
19
20
System.out.println("修改后:");
21
showData(col);
22
}catch(Exception error)
23
{
24
error.printStackTrace();
25
}
26
}
27
28
static void showData(DBCollection col)
29
{
30
DBCursor ite = col.find();
31
while(ite.hasNext())
32
{
33
System.out.println(ite.next());
34
}
35
}
36
}