SELECT * FROM smo_images
WHERE search_term in search_helpers (search helpers is array or keywords)
OR search_term = smo_code
OR search_term = size
OR search_term = category;
我想在PouchDB中实现类似的功能。我是nosql和PouchDB的新手。文档令人困惑,并不简单。
答案 0 :(得分:1)
对我而言,the documentation非常明确和直截了当。它提到了SQL的老派方法:
SQL数据库中的索引
快速了解索引的工作方式:in 像MySQL和PostgreSQL这样的关系数据库,通常可以查询 无论你想要什么领域:
SELECT * FROM pokemon WHERE name = 'Pikachu';
但是如果你不想让你的表演变得糟糕,你首先要添加 索引:
ALTER TABLE pokemon ADD INDEX myIndex ON (name);
索引的工作是确保字段存储在B树中 在数据库中,所以你的查询运行在O(log(n))时间而不是 O(n)时间。
从那里开始与NoSQL进行比较:
NoSQL数据库中的索引
以上所有内容在CouchDB和。等文档存储中也是如此 MongoDB,但从概念上讲它有点不同。默认情况下, 假定文档是具有一个主键的无模式blob (在Mongo和Couch中都称为_id),任何其他键都需要 单独指定。概念基本相同;它主要是 只是不同的词汇。
在CouchDB中,查询称为map / reduce函数。这是因为, 与大多数NoSQL数据库一样,CouchDB可以很好地扩展 多台计算机,并在中执行高效的查询操作 平行。基本上,我们的想法是将查询划分为地图 函数和reduce函数,每个函数都可以执行 并行在多节点集群中。
继续介绍Map / Reduce函数,临时/持久视图等的描述和示例代码。