2:java操控mongodb中BasicDBObject和eq()两种方法之间的区别
MongoCursor<Document> curs = coll.find(eq("TbmId", "CREC188")).iterator(); 其中的eq代表相等,用于查询。
此外还有一种查询的条件方法是
BasicDBObject其包括两种不同的方法,put 和append,下面详细描述其不同。
其中,put( String key , Object v )方法是BSONObject接口定义的,具体定义如下:
Java代码 收藏代码
public interface BSONObject {
public Object put( String key , Object v );
}
而append(
String key , Object val )方法的定义是在BasicDBObject类中,具体定义如下:
public class BasicDBObject extends BasicBSONObject implements DBObject {
@Override
public BasicDBObject append( String key , Object val ){
put( key , val );
return this;
}
}
可以看出,put方法返回的是value值,而append 方法返回的是对象本身,这样就可以向使用链式的方式添加数据,如:new BasicDBObject().append("username","zhang").append("password","111111");
3:常见指令
DBCursor:用来遍历取得的数据,实现了Iterable和Iterator
java操控mongodb默认的数据类型是Document对于java操控mongodb 的具体指令,参考链接 http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/
4: 连接到带密码的mongodb中
List<Document> list = new ArrayList<Document>();
//连接到MongoDB服务 如果是远程连接可以替换“localhost”为服务器所在IP地址
//ServerAddress()两个参数分别为 服务器地址 和 端口
ServerAddress serverAddress = new ServerAddress("169.254.123.90",27017);
List<ServerAddress> addrs = new ArrayList<ServerAddress>();
addrs.add(serverAddress);
//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
MongoCredential credential = MongoCredential.createScramSha1Credential("sa", "admin", "xush".toCharArray());
List<MongoCredential> credentials = new ArrayList<MongoCredential>();
credentials.add(credential);
MongoClient client = new MongoClient(addrs,credentials);
MongoDatabase db=client.getDatabase("tbm");
除了上述之外,还可以通过相应的读取文件方式来连接
Properties pro = new Properties();
InputStream in = MongoDao.class.getResourceAsStream("/conf/config.properties");
pro.load(in);
String url = pro.getProperty("mongoUrl").trim();
client = new MongoClient(new MongoClientURI(url));
MongoDatabase db = client.getDatabase("tbm");
MongoCollection<Document> coll = db.getCollection("DateCountData");
FileInputStream 读取字节流
FileOutputStream 写入字节流
FileReader 用于中文的读取
FileWriter 用于中文的写入
BufferedInputStream 带有缓存的读取
BufferedOutputStream 带有缓存的写入