使用 N1ql couchbase 查询的多对多关系
Many to many relationship using N1ql couchbase query
用户桶数据结构
Docid : "user123456"
{
Name: utpal,
Phone: 98222333,
Age:30,
addressids:["add_123","add_1234"]
}
地址桶
Docid : add_123
{
Name: behala,
Location: kolkata
}
Docid : add_123
{
Name: behala1,
Location: kolkata1
}
我想要结果
[{
Name: utpal,
Phone: 98222333,
Age:30,
addressids:["add_123","add_1234"],
address:[
{
Name: behala,
Location: kolkata
},
{
Name: behala1,
Location: kolkata1
}
]
任何人都可以帮助我如何为该结果编写 N1ql 查询
INSERT INTO default VALUES("user123456" { "Name": "utpal", "Phone": "98222333", "Age":30, "addressids":["add_123","add_1234"], "type":"user"});
INSERT INTO default VALUES("add_123", { "Name": "behala", "Location": "kolkata" });
INSERT INTO default VALUES("add_1234", { "Name": "behala4", "Location": "kolkata4" });
SELECT u.*, address
FROM default AS u
LET address = (SELECT RAW a FROM default AS a USE KEYS u.addressids)
WHERE u.type = "user";
或
SELECT u.*, address
FROM default AS u
NEST default AS address ON u.addressids
WHERE u.type = "user";
用户桶数据结构
Docid : "user123456"
{
Name: utpal,
Phone: 98222333,
Age:30,
addressids:["add_123","add_1234"]
}
地址桶
Docid : add_123
{
Name: behala,
Location: kolkata
}
Docid : add_123
{
Name: behala1,
Location: kolkata1
}
我想要结果
[{
Name: utpal,
Phone: 98222333,
Age:30,
addressids:["add_123","add_1234"],
address:[
{
Name: behala,
Location: kolkata
},
{
Name: behala1,
Location: kolkata1
}
]
任何人都可以帮助我如何为该结果编写 N1ql 查询
INSERT INTO default VALUES("user123456" { "Name": "utpal", "Phone": "98222333", "Age":30, "addressids":["add_123","add_1234"], "type":"user"});
INSERT INTO default VALUES("add_123", { "Name": "behala", "Location": "kolkata" });
INSERT INTO default VALUES("add_1234", { "Name": "behala4", "Location": "kolkata4" });
SELECT u.*, address
FROM default AS u
LET address = (SELECT RAW a FROM default AS a USE KEYS u.addressids)
WHERE u.type = "user";
或
SELECT u.*, address
FROM default AS u
NEST default AS address ON u.addressids
WHERE u.type = "user";