Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java MongoDB-getCollection(字符串名称)和getCollectionFromString(字符串collectionName)之间的区别?_Java_Mongodb_Database - Fatal编程技术网

Java MongoDB-getCollection(字符串名称)和getCollectionFromString(字符串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 -

有人能为我强调一下MongoDB Java api中记录的getCollection(String name)和getCollectionFromString(String 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);
 }