gpt4 book ai didi

CouchDB 在运行时通过任何文档属性映射/减少?

转载 作者:行者123 更新时间:2023-12-04 23:30:04 26 4
gpt4 key购买 nike

我来自一个 SQL 世界,其中查找由多个对象属性(published = TRUE 或 user_id = X)完成,并且有 任何地方都没有加入 (因为 1:1 缓存层)。文档数据库似乎很适合我的数据。

我想弄清楚是否有办法将一个(或多个)对象属性传递给 CouchDB map/reduce function在数据库中查找匹配的文档,而无需为每种文档类型创建数十个 View 。

是否可以将所需的文档属性键在运行时匹配到 CouchDB 并让它返回匹配的对象(或匹配分页的对象计数)?

例如,在一个页面上,我想要所有带有 doc.user_id 的帖子X 是 doc.published .在另一个页面上,我可能想要所有带有 doc.tags[] 的文档带有“运动”标签。

最佳答案

您可以构建一个迭代文档中键的 View ,并发出 [propertyName, propertyValue] 的键。 - 这样你就可以构建一个包含所有 Prop /值的单一索引。将是巨大的,不知道如何构建性能和磁盘使用情况(可能很糟糕)。

Map 函数看起来像:

// note - totally untested, my CouchDB fu is rusty
function(doc) {
for(prop in doc) {
emit([prop, doc[prop]], null);
}
}

适用于简单属性的基本情况,并且可以扩展为对数组进行智能处理,并为数组中的每个项目发出一个 prop/value 对。那会让你处理标签。

要对其进行查询,请将 [prop] 设置为 View 上的查询键。

关于CouchDB 在运行时通过任何文档属性映射/减少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6500745/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com