如何使用SPRING数据在MongoDB中创建集合
我使用SpringDataMongo访问我的Mongo数据库上的CRUD操作。我执行下面一行如何使用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
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>);