我有一个包含3个集合的MongoDB。下面是这3个集合,每个集合包含一个文档示例:tag
_id: ObjectId('61b873ec6d075801f7a97e18')
name: 'TestTag'
category: 'A'
computer
_id: ObjectId('6098c5ab615d9e23543d0f6f')
name: 'TestComputer'
category: 'A'
tags: [
'TestTag'
]
setting
_id: ObjectId('61e56339b528bf009feca149')
name: 'FirstSetting'
category: 'A'
priority: 1
tags: [
ObjectId('61b873ec6d075801f7a97e18')
]
_id: ObjectId('61e56339b528bf009feca150')
name: 'SecondSetting'
category: 'A'
priority: 2
tags: [
ObjectId('61b873ec6d075801f7a97e18')
]
其思想是,您可以创建一个标记,并标记您的计算机和设置,但只能在同一类别中:
- 示例:类别"A"的标记只能存在于类别"A"的计算机和设置中 *
一台计算机一次只能有一个活动设置。活动设置是共享同一标记的设置。如果设备与多个设置共享标记,则优先级最高的设置优先。
因此,基于这些规则,我想为我的每个设备添加一个新的***activeSetting***属性,如下所示:computer
_id: ObjectId('6098c5ab615d9e23543d0f6f')
name: 'TestComputer'
category: 'A'
tags: [
'TestTag'
]
activeSetting: ObjectId('61e56339b528bf009feca149')
- 我所尝试的**
我试过使用lookup
来获取计算机列表和每个标记的设置列表,但我真的不知道从那里去哪里。
1条答案
按热度按时间pxiryf3j1#
一种选择是:
了解它在playground example上的工作原理