Java MongoDB-getCollection(字符串名称)和getCollectionFromString(字符串collectionName)之间的区别?
有人能为我强调一下MongoDB Java api中记录的getCollection(String name)和getCollectionFromString(String collectionName)之间的区别吗Java MongoDB-getCollection(字符串名称)和getCollectionFromString(字符串collectionName)之间的区别?,java,mongodb,database,Java,Mongodb,Database,有人能为我强调一下MongoDB Java api中记录的getCollection(String name)和getCollectionFromString(String collectionName)之间的区别吗 public DBCollection getCollectionFromString(String collectionName) Returns a collection matching a given string. Parameters: collectionName -
public DBCollection getCollectionFromString(String collectionName)
Returns a collection matching a given string.
Parameters: collectionName - the name of the collection
Returns: the collection
及
举例说明最有帮助。
(摘自)Karl Seguin对此的回应: 集合可以由名称空间“db.collection”标识。 getCollectionFromString获取该类型的集合 命名空间。getCollection仅为原始集合获取它 您需要/使用getCollectionFromString的地方还有更多需要改进的地方 构建某种类型的mongodb管理工具,或者 跨多个数据库的CMS…那种动态驱动的 系统。对于大多数应用程序来说,getCollection可能更为典型 另一个: 我想你用哪一种取决于你的期望 允许您的用户输入 如果他们对所有数据库一无所知,那么使用 getCollection()是有意义的…我想应该是这样的 如果这是一个真正的动态系统,用户可能会说“给我 数据库app1中的用户”则getCollectionFromStirng可能 有道理 然而,我认为在第二种情况下,最好是 有两个字段:数据库和集合。这样就更明确了 而且处理起来更简单。为什么您的用户应该知道该数据库 和集合在MongoDB中是点分隔的吗 用说明
获取集合(字符串s)
:
public DBCollection getCollection(String name)
Gets a collection with a given name.
Parameters: name - the name of the collection to return
Returns: the collection
package com.example.core;
import java.net.UnknownHostException;
import java.util.Set;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
/**
* Java : Get collection from MongoDB
*
*/
public class GetCollectionApp {
public static void main(String[] args) {
try {
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("yourdb");
// get list of collections
Set<String> collections = db.getCollectionNames();
for (String collectionName : collections) {
System.out.println(collectionName);
}
// get a single collection
DBCollection collection = db.getCollection("yourCollection");
System.out.println(collection.toString());
System.out.println("Done");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
}
}
public DBCollection getCollectionFromString(String s){
DBCollection foo = null;
while (s.contains(".")){
int idx = s.indexOf(".");
String b = s.substring(0, idx);
s = s.substring(idx + 1);
foo = getCollection(b);
}
if (foo != null)
return foo;
return getCollection(s);
}