MongoClient client = new MongoClient();
MongoDatabase database = client.getDatabase("mydb");
使用
getDatabase( )
方法会创建没有的数据库,而存在则直接连接,这和前面讲的数据库层面的
use mydb
是一样的概念。
MongoClient client = new MongoClient();
MongoIterable<String> list = client.listDatabaseNames();
for (String string : list) {
System.out.println(string);
另外还有一个已经不建议使用的方法:
List<String> databaseNames = client.getDatabaseNames();
client.dropDatabase("mydb")
client.getDatabase("mydb").drop()
(其他方法可以自己看看源码,运行试试看,这里就不多说了)
MongoClient client = new MongoClient();
MongoDatabase database = client.getDatabase("mydb");
database.createCollection("test");
这是创建默认设置的集合,还可以按自己的需要创建集合:
database.createCollection(collectionName, createCollectionOptions)
其中 CreateCollectionOptions
是一个 MongoDB 的内置对象。包含下列属性:
MongoClient client = new MongoClient();
MongoDatabase database = client.getDatabase("mydb");
MongoIterable<String> list = database.listCollectionNames();
for (String string : list) {
System.out.println(string);
MongoClient client = new MongoClient();
MongoDatabase database = client.getDatabase("mydb");
MongoCollection<Document> collection = database.getCollection("test");
collection.drop();
MongoNamespace namespace = collection.getNamespace();
MongoNamespace newNamespace = new MongoNamespace(namespace.getDatabaseName(),"test");
collection.renameCollection(newNamespace );
数据库创建数据库MongoClient client = new MongoClient();MongoDatabase database = client.getDatabase("mydb");使用 getDatabase( ) 方法会创建没有的数据库,而存在则直接连接,这和前面讲的数据库层面的 use mydb 是一样的概念。列表所有数据库MongoClient client = n
文档是MongoDB中数据的基本单元,非常类似于关系型数据库中的行,其格式非常类似于python中的字典,也是由键值对组成。
{"greet":"Hello,World!","foo":3}
文档中的键是字符串,但有以下几个规定:
键不能含有\0(空字符),这个字符用于表示键的结尾。
.和$有特定意义,只能在特定环境下使用。
MongoDB不但区分类型,还区分大小写。
{"foo":"3"}和{"foo":3}不同
{"foo":3}和{"FOO":3}不同
MongoDB的文档不
基本的createCollection()命令语法如下:
db.createCollection(name, options)
在命令中,name是要创建的集合的名称.Options是一个文件,用于指定配置的集合
capped:是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
size:限制集合使用空间的大小,默认为没有限制
max:集合中最大条数限制,默认为没有限制
autoInde
1.@Id
主键,不可重复,自带索引,可以在定义的列名上标注,需要自己生成并维护不重复的约束。如果自己不设置@Id主键,mongo会自动生成一个唯一主键,并且插入时效率远高于自己设置主键。原因可参考上一篇mongo和mysql的性能对比。
在实际业务中不建议自己设置主键,应交给mongo自己生成,自己可以设置一个业务id,如int型字段,用自己设置的业务id来维护相关联的表。
2.@Indexed
声明该字段需要加索引,加索引后以该字段为条件检索将大大提高速度。
唯一索引的话是@Indexed(unique
MongoDB是一款NoSql数据库。NoSql数据库叫非关系型数据库,NoSql的全名Not only sql。是为了解决高并发、高可用、高可扩展,以及大数据存储等一系列问题而产生的数据库解决方案。NoSql,它不能替代关系型数据库,只能作为关系型数据库的一个良好补充。
NoSql数据库又分为多种,如键值(Ke...
可以使用Flask-APScheduler在MongoDB中实现定时任务,只需要在Flask应用中定义一个定时任务,并将其配置为在MongoDB中运行。具体代码如下:from flask_apscheduler import APSchedulerscheduler = APScheduler()# Configure the scheduler to use MongoDB as its job store
scheduler.add_jobstore('mongodb', host='localhost',
database='your_database_name')@scheduler.task('interval', id='do_job_1', seconds=30)
def job_1():
print("Job 1 executed")@scheduler.task('cron', id='do_job_2', day_of_week='mon-sun', hour='12', minute='30')
def job_2():
print("Job 2 executed")# Start the scheduler
scheduler.start()