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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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
如何使用SPRING数据在MongoDB中创建集合_Mongodb_Spring Data Mongodb - Fatal编程技术网

如何使用SPRING数据在MongoDB中创建集合

如何使用SPRING数据在MongoDB中创建集合,mongodb,spring-data-mongodb,Mongodb,Spring Data Mongodb,我使用SpringDataMongo访问我的Mongo数据库上的CRUD操作。我执行下面一行 DB db = mongoTemplate.getDb() 当我处于调试模式时,我可以看到db.\u collections属性有4个值(我插入的集合)。但当我询问 db.getCollectionNames() 我没有收到任何回执。为什么呢?当我这样做的时候也是如此 db.getCollection("collectionName") 但我知道收藏确实存在,因为当我做类似的事情时 mongoTe

我使用SpringDataMongo访问我的Mongo数据库上的CRUD操作。我执行下面一行

DB db = mongoTemplate.getDb()
当我处于调试模式时,我可以看到db.\u collections属性有4个值(我插入的集合)。但当我询问

db.getCollectionNames()
我没有收到任何回执。为什么呢?当我这样做的时候也是如此

db.getCollection("collectionName")
但我知道收藏确实存在,因为当我做类似的事情时

mongoTemplate.createCollection("collectionName");
我得到一个异常,说集合已经存在。请任何人解释一下我可能遗漏了什么

提供了一些管理收藏的方法。以下示例演示了一些方法:

DBCollection collection = null;
if (!mongoTemplate.getCollectionNames().contains("collectionName")) {
    collection = mongoTemplate.createCollection("collectionName");
}

mongoTemplate.dropCollection("collectionName"); 

在上面的示例中,返回一组集合名称,并删除集合。

使用com.mongodb.client和com.mongodb包的MongoClient、MongoDatabase和MongoInterable

MongoClient client = MongoClient(<host>, port);
MongoDatabase db = client.getDatabase(<Name of the database>);
MongoIterable<String> = db.listCollectionNames();

这和我已经在做的有什么不同?我已经提到mongoTemplate.getCollectionNames()会导致零收集。这是不同的,因为您使用的是
db=mongoTemplate.getDb()
中的
db
对象来获取集合名
db.getCollectionNames()
而不是
mongoTemplate
对象。我很累,还是运气不好,dropCollection(“collectionName”)似乎可以工作。此外,mongoTemplate.collectionExists(“collectionName”)返回false,而我希望它返回true
MongoCollection<Document> collection = db.getCollection(<Collection name>);