gpt4 book ai didi

views - ouchdb View ,该 View 在数组字段中搜索作为键数组传入的值

转载 作者:行者123 更新时间:2023-12-04 13:53:01 28 4
gpt4 key购买 nike

我在沙发数据库中有一些文档,这些文档的字段是不同关联文档的ID数组:

{
associatedAssets: ["4c67f6241f4a0efb7dc2abc24a004dfe", "270fd4508a1222a1e2a27cbe7f002d9z"]
}

我想写一个 View ,让我传入本身就是一个ID数组的键,然后返回其associatedAssets字段包含一个或多个通过键数组传递的ID的文档。
$.ajax({
url: "/db/_design/design_doc/_view/summaryByAssociatedAssets",
type: "post",
data: JSON.stringify({keys: ["4c67f6241f4a0efb7dc2abc24a004dfe", "6c67f6241f4a0efb7dc2abc24a004dfd"]}),
dataType: "json",
contentType: "application/json",
})
.done(function(resp){
console.log(resp[0]);
});

会返回其associatedAssets数组包含一个或多个键“4c67f6241f4a0efb7dc2abc24a004dfe”,“6c67f6241f4a0efb7dc2abc24a004dfd”的文档。

我无法访问 View 中的键,因此不确定是否可以执行此操作?有没有更好的方法可以做到这一点?

谢谢!

最佳答案

您的 View 仅需要为每个associatedAssets元素生成一个输出行,如下所示:

function(doc) {
if( doc.associatedAssets ) {
for( var i=0, l=doc.associatedAssets.length; i<l; i++) {
emit( doc.associatedAssets[i], doc );
}
}
}

然后,您需要调整调用,以使其最终将 keys数组作为查询字符串参数传递,这将仅从 View 中返回与该数组中的键匹配的行。

总而言之-假设是最新的CouchDB版本,最佳做法是将 doc中的 emit替换为 { _id: doc._id },然后在查询中使用 include_docs=true,这样就不会(不必要地)用完整的文档填充 View 索引。

关于views - ouchdb View ,该 View 在数组字段中搜索作为键数组传入的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167125/

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