假设一个包含以下文档的集合:
{
"username" : "Aventinus"
"text": "I love StackOverflow!",
"tags": [
"programming",
"mongodb"
]
}
在MongoDB中使用文本索引和以下命令,我可以找到文本中包含单词StackOverflow
的所有文档,并将它们存储在另一个集合中:
db.C_a.aggregate([
{$match: {$text: {$search:"StackOverflow"}}},
{$out:"C_b"}
]);
但是,我想运行上面的代码片段以获取关键字列表(超过200个),所以我需要通过编写Python脚本来自动执行此过程。
问题:PyMongo中上述代码段的等效内容是什么?
答案 0 :(得分:1)
以下是在pymongo版本3.6.1和python 3.6.4上测试的可行代码
import pymongo
from pymongo import MongoClient
client = MongoClient('127.0.0.1') # mongodb running locally
dbRead = client['test'] # using the test database in mongo
# create the pipeline required
pipeline = [{"$match": {"$text": {"$search":"StackOverflow"}}},{"$out":"C_b"}] # all attribute and operator need to quoted in pymongo
dbRead.C_a.aggregate(pipeline) #execution
print (dbRead.C_b.count()) ## verify count of the new collection