gpt4 book ai didi

couchdb - 如何为以下案例设计 couchdb View ?

转载 作者:行者123 更新时间:2023-12-04 06:11:19 25 4
gpt4 key购买 nike

我正在将应用程序从 mySQL 迁移到 couchDB。 (好吧,请不要对此做出判断)。

有一个带签名的函数

getUserBy($column, $value) 

现在您可以看到,在 SQL 的情况下,构建查询并触发它是一项微不足道的工作。

但是,就 couchDB 而言,我应该使用 map 函数编写 View

目前我有很多观点,例如
get_user_by_name
get_user_by_email

等等。任何人都可以提出一种更好且可扩展的方法吗?

最佳答案

当然!我最喜欢的观点之一是 by_field .这是一个非常简单的 map 功能。

function(doc) {
// by_field: map function
// A single view for every field in every document!
var field, key;

for (field in doc) {
key = [field, doc[field]];
emit(key, 1);
}
}

假设您的文档有一个 .name字段为他们的名字,和 .email为他们的电子邮件地址。

要按名称获取用户(例如“Alice”和“Bob”):
GET /db/_design/example/_view/by_field?include_docs=true&key=["name","Alice"]
GET /db/_design/example/_view/by_field?include_docs=true&key=["name","Bob"]

要通过电子邮件获取用户,请从同一 View :
GET /db/_design/example/_view/by_field?include_docs=true&key=["email","alice@gmail.com"]
GET /db/_design/example/_view/by_field?include_docs=true&key=["name","bob@gmail.com"]

我喜欢发射的原因 1以便您以后可以编写 reduce 函数以使用 sum()轻松添加与您的查询匹配的文档。

关于couchdb - 如何为以下案例设计 couchdb View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7736995/

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