#mongoDB小结
首先介绍一个非常非常好用的客户端,长得像一个绿色的火箭的东西Robo 3T.工具,做增删改查都很方便。
-
mongo安装
网上有很多mongo安装的教程,小编在这里就不一一介绍了,主要分为几个步骤:
1.下载mongo文件,直接从官网下载即可
2.上传文件到服务器,解压文件 tar zxvf 文件名
3.将解压后的文件移动到指定文件夹
: mv mongodb-linux-x86_64-rhel62-3.4.10 /usr/local/mongodb
: 注意:mongodb不需要提前创建 不要在后面加/4.创建两个文件
: mongodb文件夹下创建 mongodb.conf
: mongodb文件夹下创建logs文件夹,并在logs文件夹下创建mongodb.log文件 -
mongo启动方式
mongo启动方式有两种 :
1.直接启动 进入bin文件夹 ./mongo
2.配置文件启动 mongod -f /usr/loacl/mongodb/mongodb.conf -
用连接工具进行连接
用连接工具进行连接,就需要在配置文件内,配置IP。就不是以127.0.0.1的方式启动了。
配置文件:
dbpath = /usr/local/mongodb/data/db
logpath = /usr/local/mongodb/logs/mongodb.log
logappend = true
port = 27017
fork = true
bind_ip = 192.168.1.222
auth=true
我们如果想要在bin目录下启动:./mongo 192.168.1.222:27017
-
安全配置(未解决问题)
我想创建一个数据库,然后创建 用户名 和密码
use admin,切换到admin 然后创建用户权限,会报错,‘no authentication’ ,百度了好多无果。如果能解决,希望可以告诉我。
use admin
db.createUser(
{
user: “admin”,
pwd: “admin”,
roles: [ { role: “userAdminAnyDatabase”, db: “admin” } ]
}
)
一直报:Error: couldn’t add user: not authorized on admin to execute command -
创建数据库
mongo创建数据库很简单,直接use 数据库名称 就直接创建了一个数据库,创建完数据库后,需要创建连接这个数据库的用户名和密码。
相关连接:http://www.jb51.net/article/48217.htm -
连接数据库,进行数据操作
连接数据库时,use 数据库名称 ,然后查看数据库的时候也会出现 no author 的情况,我们使用 db.auth(‘用户名’,‘密码’); 进行连接 返回值1 就连接成功了。连接成功后我们可以查看 里面的数据 db.getCollection(“表名”); 查看一个表中所有数据,这样使用db.author就没有权限的限制了。
mongo创建表
mongo创建表非常简单,mongo是非关系型数据库,表和表之间没有复杂的联系。我们创建表时不需要像mysql一样创建表结构,只需要执行
db.createCollection(“zyzs_notice_subsetPage”); -
mongo增删改查
存入mongo的数据是json格式的字符,我们在mongo插入数据时也是很简单的。
插入数据:db.getCollection(‘zyzs_notice_subsetPage_hlj’).insert({json格式的数据 })
db.getCollection('zyzs_notice_subsetPage_hlj').insert({
"_id": ObjectId("5975bc2258db1412e12611de"),
"id": 1,
"isDelete": "0"
})
db.表名.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})
根据某个字段进行数据查询
db.getCollection('表名').find({"key":"value"})
mongo在java中的应用
- 保存数据
private final static String connectionName="zyzs_terminal_sign";
/**
* 保存入库
* @param terminalSign
* @throws Exception
*/
public void saveinfo(TerminalSign terminalSign) throws Exception{
MongoDBDao mongo = new MongoDBDaoImpl();
mongo.setMongoPools(MongoPools.getInstance(connectionName));
mongo.inSert(terminalSign);
}
public boolean inSert(Object Sources) {
if (Sources == null)
{
return false;
}
MongoDatabase db = null;
MongoCollection dbCollection = null;
db = this.MongoPools.getMongo().getDatabase(this.MongoPools.getMongoConfigure().getDBName());
dbCollection = db.getCollection(this.MongoPools.getMongoConfigure().getCollectionName());
if ((Sources instanceof List))
{
List list = new ArrayList();
for (Iterator localIterator = ((List)Sources).iterator(); localIterator.hasNext(); ) { Object ject = localIterator.next();
Gson gson = new Gson();
String json = gson.toJson(ject);
Document doc = Document.parse(json);
list.add(doc);
}
dbCollection.insertMany(list);
}
else {
Gson gson = new Gson();
String json = gson.toJson(Sources);
Document doc = Document.parse(json);
dbCollection.insertOne(doc);
}
return true;
}
我们在插入数据的时候,也是以json字符串的根式进行插入的。dbCollection.insert(一个json格式的文档)