相关疑难解决方法(0)

Pymongo/MongoDB:创建索引还是确保索引?

我不明白create_indexensure_indexpymongo 之间的区别.在MongoDB索引页面上,它说

你可以通过调用来创建一个索引 ensureIndex()

然而,在pymongo有两个不同的命令create_indexensure_index,并为创建索引有文档:

与尝试无条件地创建索引的create_index()不同,ensure_index()利用驱动程序中的某些缓存,以便它只尝试创建可能尚不存在的索引.当PyMongo创建(或确保)索引时,它会被"记住"ttl秒.在该时间限制内重复调用ensure_index()将是轻量级的 - 它们不会尝试实际创建索引.

我是否正确理解ensure_index将创建一个永久索引,或者我是否需要使用create_index它?

python mongodb pymongo

49
推荐指数
3
解决办法
3万
查看次数

如何停止在mongodb集合中插入重复文档

让我们有一个MongoDB有三个文档的集合..

db.collection.find()

 { _id:'...', user: 'A', title: 'Physics',   Bank: 'Bank_A' }
 { _id:'...', user: 'A', title: 'Chemistry', Bank: 'Bank_B' }
 { _id:'...', user: 'B', title: 'Chemistry', Bank: 'Bank_A' }
Run Code Online (Sandbox Code Playgroud)

我们有一份文件,

 doc = { user: 'B', title: 'Chemistry', Bank:'Bank_A' }
Run Code Online (Sandbox Code Playgroud)

如果我们使用

 db.collection.insert(doc) 
Run Code Online (Sandbox Code Playgroud)

在这里,这个重复的文档将插入数据库中.

 { _id:'...', user: 'A', title: 'Physics',   Bank: 'Bank_A' }
 { _id:'...', user: 'A', title: 'Chemistry', Bank: 'Bank_B' }
 { _id:'...', user: 'B', title: 'Chemistry', Bank: 'Bank_A' }
 { _id:'...', user: 'B', title: 'Chemistry', Bank: 'Bank_A' } …
Run Code Online (Sandbox Code Playgroud)

database mongodb nosql mongodb-query

40
推荐指数
3
解决办法
4万
查看次数

标签 统计

mongodb ×2

database ×1

mongodb-query ×1

nosql ×1

pymongo ×1

python ×1