mongoDB查询之find
2016-06-14 14:56
495 查看
mongoDB中使用find来进行查询,查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合。
我们获取mongoDB的连接的代码如下:
public static void main(String[] args) throws UnknownHostException {
MongoClient mongo = new MongoClient(new MongoClientURI("mongodb://localhost:20717"));
DB db = mongo.getDB("contactstore");
DBCollection contactsCollection = db.getCollection("contacts");
}
1. find对整体查询
/**
* 获取所有结果
* @param contactsCollection
*
* db.contacts.find()
*/
public static void findAllDocument(DBCollection contactsCollection){
DBCursor cursor = contactsCollection.find();
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}
2.根据查询条件获取结果
/**
* 根据条件来获取结果
* @param contactsCollection
*
* db.contacts.find({"fname":"James"})
*/
public static void findDocumentByCondition(DBCollection contactsCollection){
BasicDBObject document = new BasicDBObject();
document.put("fname", "James");
//find方法的第一个参数是我们的查询条件
DBCursor cursor = contactsCollection.find(document);
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}
3. 指定返回的键
/**
* 根据条件来获取结果,但是我们并不要求返回所有的结果中包含所有的Field,只要包含我们感兴趣的Field就可以的
*
* "_id" 这个字段是默认显示的, 如果你不想让他显示,你可以这样做: _id:0
*
* db.contacts.find({"fname":"James"},{"lnsearch":1,"fname":1,"metaphone":1})
*
* @param contactsCollection
*/
public static void findDocumentByConditionAndTraceSomeField(DBCollection contactsCollection){
BasicDBObject document = new BasicDBObject();
document.put("fname", "James");
BasicDBObject keyField = new BasicDBObject();
keyField.put("lnsearch", 1);
keyField.put("fname", 1);
keyField.put("metaphone", 1);
//find方法的第一个参数是我们的查询条件
//find方法的第二个参数是我们的所感兴趣的Field
DBCursor cursor = contactsCollection.find(document, keyField);
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}4.比较符查询条件
/**
* 根据范围查询
*
* $lt : <
* $lte: <=
* $gt: >
* $gte: >=
*
* db.contacts.find({"_id":{"$gte":2500,"$lte":3000}})
*/
public static void findDocumentByConditionUseGTEandLTE(DBCollection contactsCollection){
BasicDBObject document = new BasicDBObject();
BasicDBObject condition = new BasicDBObject();
condition.put("$gte", 2500);
condition.put("$lte", 3000);
document.put("_id", condition);
DBCursor cursor = contactsCollection.find(document);
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}
我们获取mongoDB的连接的代码如下:
public static void main(String[] args) throws UnknownHostException {
MongoClient mongo = new MongoClient(new MongoClientURI("mongodb://localhost:20717"));
DB db = mongo.getDB("contactstore");
DBCollection contactsCollection = db.getCollection("contacts");
}
1. find对整体查询
/**
* 获取所有结果
* @param contactsCollection
*
* db.contacts.find()
*/
public static void findAllDocument(DBCollection contactsCollection){
DBCursor cursor = contactsCollection.find();
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}
2.根据查询条件获取结果
/**
* 根据条件来获取结果
* @param contactsCollection
*
* db.contacts.find({"fname":"James"})
*/
public static void findDocumentByCondition(DBCollection contactsCollection){
BasicDBObject document = new BasicDBObject();
document.put("fname", "James");
//find方法的第一个参数是我们的查询条件
DBCursor cursor = contactsCollection.find(document);
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}
3. 指定返回的键
/**
* 根据条件来获取结果,但是我们并不要求返回所有的结果中包含所有的Field,只要包含我们感兴趣的Field就可以的
*
* "_id" 这个字段是默认显示的, 如果你不想让他显示,你可以这样做: _id:0
*
* db.contacts.find({"fname":"James"},{"lnsearch":1,"fname":1,"metaphone":1})
*
* @param contactsCollection
*/
public static void findDocumentByConditionAndTraceSomeField(DBCollection contactsCollection){
BasicDBObject document = new BasicDBObject();
document.put("fname", "James");
BasicDBObject keyField = new BasicDBObject();
keyField.put("lnsearch", 1);
keyField.put("fname", 1);
keyField.put("metaphone", 1);
//find方法的第一个参数是我们的查询条件
//find方法的第二个参数是我们的所感兴趣的Field
DBCursor cursor = contactsCollection.find(document, keyField);
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}4.比较符查询条件
/**
* 根据范围查询
*
* $lt : <
* $lte: <=
* $gt: >
* $gte: >=
*
* db.contacts.find({"_id":{"$gte":2500,"$lte":3000}})
*/
public static void findDocumentByConditionUseGTEandLTE(DBCollection contactsCollection){
BasicDBObject document = new BasicDBObject();
BasicDBObject condition = new BasicDBObject();
condition.put("$gte", 2500);
condition.put("$lte", 3000);
document.put("_id", condition);
DBCursor cursor = contactsCollection.find(document);
while (cursor.hasNext()) {
DBObject element = cursor.next();
System.out.println(element);
}
}
/** * 使用 $ne 查询 , 查询fname 不包含James 的document * * db.contacts.find({"fname":{"$ne":"James"}}) * * @param contactsCollection */ public static void findDocumentByConditionUseNoEqual(DBCollection contactsCollection){ BasicDBObject document = new BasicDBObject(); BasicDBObject condition = new BasicDBObject(); condition.put("$ne", "James"); document.put("fname", condition); DBCursor cursor = contactsCollection.find(document); while (cursor.hasNext()) { DBObject element = cursor.next(); System.out.println(element); } }
相关文章推荐
- MongoDB 3.0 安全权限访问控制
- MongoDB安装环境搭建
- Linux系统下MongoDB的简单安装与基本操作
- LINUX 安装 MongoDB
- mongodb插入数据报错:malformed UTF-8 character sequence at offset
- (转)部署MongoDB时需要注意的调参
- mongodb的find()函数如何只显示文档中指定的域(列)?
- MongoDB【第二篇】MongoDB逻辑与物理存储结构
- mongodb查询文档
- MEAN全栈开发学习笔记1===>栈的安装
- MongoDB学习
- MongoDB(四)分片集群
- MongoDB(三)主从复制以及副本集的配置和使用
- MongoDB(二)主从复制以及副本集的配置和使用
- MongoDB(一)简介和安装使用
- 【MongoDB】递归获取字段更新表达式,更新复杂数据类型对象
- mongodb的find().pretty()方法的作用。
- net start mongodb 提示:发生系统错误 5,拒绝访问。
- 【MongoDB】C#中的Mongo数据类型转换
- mongodb安装教程。