package examples.mongodb.crud;
import java.io.File;
import java.io.IOException;
import com.mongodb.DB;
import com.mongodb.DBCursor;
import com.mongodb.MongoClient;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;
public class MongoDBBinaryExample
{
public static void main(String[] args) throws IOException
{
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("howtodoinjava");
//Save a image in DB
saveImageIntoMongoDB(db);
//Get a image from DB
getSingleImageExample(db);
//Get all images from DB
listAllImages(db);
saveToFileSystem(db);
//Delete images from DB
deleteImageFromMongoDB(db);
//Verifying if image was deleted or not
getSingleImageExample(db);
}
private static void saveImageIntoMongoDB(DB db) throws IOException {
String dbFileName = "DemoImage";
File imageFile = new File("c:\\DemoImage.png");
GridFS gfsPhoto = new GridFS(db, "photo");
GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile);
gfsFile.setFilename(dbFileName);
gfsFile.save();
}
private static void getSingleImageExample(DB db) {
String newFileName = "c:/DemoImage";
GridFS gfsPhoto = new GridFS(db, "photo");
GridFSDBFile imageForOutput = gfsPhoto.findOne(newFileName);
System.out.println(imageForOutput);
}
private static void listAllImages(DB db) {
GridFS gfsPhoto = new GridFS(db, "photo");
DBCursor cursor = gfsPhoto.getFileList();
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
}
private static void saveToFileSystem(DB db) throws IOException {
String dbFileName = "DemoImage";
GridFS gfsPhoto = new GridFS(db, "photo");
GridFSDBFile imageForOutput = gfsPhoto.findOne(dbFileName);
imageForOutput.writeTo("c:/DemoImageNew.png");
}
private static void deleteImageFromMongoDB(DB db) {
String dbFileName = "DemoImage";
GridFS gfsPhoto = new GridFS(db, "photo");
gfsPhoto.remove(gfsPhoto.findOne(dbFileName));
}
}
Output:
{ "_id" : { "$oid" : "53cff8d736414e8af4a4f0b8"} , "chunkSize" : 262144 , "length" : 138855 , "md5" : "b75f77c16c3ac6472365c06cde15d0da" , "filename" : "DemoImage" , "contentType" : null , "uploadDate" : { "$date" : "2014-07-23T18:03:03.403Z"} , "aliases" : null }
{ "_id" : { "$oid" : "53cff8d736414e8af4a4f0b8"} , "chunkSize" : 262144 , "length" : 138855 , "md5" : "b75f77c16c3ac6472365c06cde15d0da" , "filename" : "DemoImage" , "contentType" : null , "uploadDate" : { "$date" : "2014-07-23T18:03:03.403Z"} , "aliases" : null }
null
|
1.解压mongodb-win32-i386-1.8.1.zip ,创建路径C:\Program Files\mongodb ,将解压后的Bin文件Copy to 此文件夹下
2.C:\Program Files\mongodb 下建立data,logs文件夹 然后在data下建立db文件夹,在logs下面创建MongoDB.log文件,
至此mongodb下有以下文件夹:
C:\Program Files\mongodb\bin
C:\Program Files\mongodb\data\db
C:\Program Files\mongodb\logs\MongoDB.log
//启动
mongod -dbpath "C:\Program Files\data\db"
//然后进入bin
双击mongo.exe 即可操作
mongod -dbpath "C:\Program Files\data\db" --auth --httpinterface --rest
//安装windows 服务
mongod --dbpath "C:\Program Files\data\db" --logpath "C:\Program Files\logs\MongoDB.log" --auth --rest --httpinterface --install --serviceName "MongoDB"
//删除 windows 服务
mongod --dbpath --remove --serviceName "MongoDB"
//用户权限问题
MongoDB的用户分为两种,一种是admin用户,另一种是特定数据库用户。admin用户拥有最高的权限,而特定数据库用户则只能访问特定的数据库。当MongoDB的admin库里没有任何用户的时候,也就是说整个MongoDB没有一个MongoDB用户的时候,即便–auth权限需求打开了,用户还是可以通过localhost界面进入MongoDB进行用户设置,否则的话整个MongoDB就完全没法访问了。而当这个用户创建完成之后,之后的用户登录和操作就需要授权了,不是直接登录就能使用的了
use admin
db.addUser('root','root')
//重启服务
//--auth 加上认证 --httpinterface web监控28017 --rest
mongod -dbpath "C:\Program Files\data\db" --auth --httpinterface --rest
//下次就需要认证后才可以操作
db.auth("root", "root")
|