我试图在python中构建一个简单的应用程序,其中我有与标签关联的标签。
鉴于以下数据:
图书:
+-------------+--------------------------------+
| id | tags |
+-------------+--------------------------------+
| 1 | [python, ruby, rails] |
+-------------+--------------------------------+
| 2 | [fiction, fantasy] |
+-------------+--------------------------------+
| 3 | [fiction, adventure] |
+-------------+--------------------------------+
我如何(使用pymongo)找到:
答案 0 :(得分:3)
db.books.find({tags: 'ruby'})
如果您为该字段编制索引,这将会更快。
db.books.ensureIndex({tags: 1})
您可以使用map-reduce
var map = function() {
this.tags.forEach(function(t) {
emit(t, 1);
})
};
var reduce = function(k, vals) {
return {k, 1}
};
db.books.mapReduce(map, reduce, {out: 'temp_collection_name'});
所有示例都在javascript中,它们应该立即在mongo shell中运行。我留给你阅读pymongo文档并翻译片段。