gpt4 book ai didi

rethinkdb - 根据 id 字段合并 2 个对象子文档数组

转载 作者:行者123 更新时间:2023-12-02 01:31:21 25 4
gpt4 key购买 nike

我有用户和团队的 M-N 关系,我正在尝试使用 subdoc 策略而不是标准的 3 表 SQL 策略。

user = {
id: 'user1',
teams: [{'team1', roles: ['admin']}, {'team2', roles: ['editor']}]
}

team = {
id: 'team1',
name: 'The Team #1'
}

我想从 team 表中获取 name 字段并将其粘贴到适当的子文档中:

query = {
id: 'user1',
teams: [{'team1', roles: ['admin'], name: 'The Team #1'}, {'team2', roles: ['editor'], name: 'The Team #2'}]
}

我可以很容易地获得团队文档,但我一直在覆盖 teams 数组:

//Query
r.table('users').get('user1').merge(function(user) {
return {
teams: r.table('teams').getAll(r.args(user('teams')
.map(function(team) {return team('id')}))).coerceTo('array')
}
})

//Bad result
user.teams = [
{
"id": "team1" ,
"name": "team 1"
} ,
{
"id": "team2" ,
"name": "team 2"
}
]

是否可以合并基于对象字段的对象数组,或者我应该在应用程序级别这样做吗?有没有更好的办法?

最佳答案

如果 teams 数组有团队的 ID,你可以这样做:

r.table('users').get('user1').merge(function(user) {
return {teams: user('teams').merge(function(team) {
return r.table('teams').get(team('id'));
})};
})

关于rethinkdb - 根据 id 字段合并 2 个对象子文档数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191368/

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