您的位置:首页 > 数据库 > Mongodb

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);
}
}
/**
* 使用 $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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: