我有两个集合,一个是用户集合,另一个是集合集合.在groups文档中看起来像这样:
{
"_id": ObjectId("...")
"members": [ObjectId("..."), ObjectId("..."), ObjectId("...")]
}
Run Code Online (Sandbox Code Playgroud)
在users集合中,文档如下所示:
{
"_id": ObjectId("...")
"first_name": "...",
"last_name": "...",
"phone": "..."
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是在users集合中添加一个聚合,我将一个$lookup阶段添加到管道中,我进入groups集合并根据_id用户文档members中的组是否在组文档中的数组中从用户获取组.
我有以下但我不知道如何继续.
db.users.aggregate([
{
"$match": { "_id": ObjectId("...") }
},
{
"$lookup": {
"from": "groups",
"let": {"_id": "$_id"},
"pipeline": [{"$match": ???}], <- match when $$_id is inside $members
"as": "group"
}
]);
Run Code Online (Sandbox Code Playgroud)
我知道MongoDB中的聚合框架不适用于数组,并且有一个$unwind阶段,但我真的不知道如何组合$unwind并$match得到我想要的结果.
我想要的是:
{
"_id": ObjectId("..."),
"group": ObjectId("..."),
(other …Run Code Online (Sandbox Code Playgroud) 我需要的是一种在存储库中构建 Dockerfile 作为映像并将其用作下一步的映像的方法。
我已尝试下面的 Bitbucket Pipeline 配置,但在“构建”步骤中,其缓存中似乎没有图像(在上一步中构建)。
pipelines:
branches:
main:
- step:
name: Docker Image(s)
script:
- docker build -t foo/bar .docker/composer
services:
- docker
caches:
- docker
- step:
name: Build
image: foo/bar
script:
- echo "Hello, World"
- composer --version
services:
- docker
caches:
- docker
Run Code Online (Sandbox Code Playgroud)
我已经尝试了下面 StackOverflow 问题的答案,但该问题的上下文是在下一步中推送图像。这与使用为该步骤本身构建的图像无关。
现在我正在从节点导出器中抓取指标。节点导出器导出的一些指标具有标签mountpoint。
我想删除具有此标签且与正则表达式不匹配的时间序列。我尝试使用该keep操作(因为我想保留与此正则表达式匹配的时间序列),但这也会删除所有其他没有mountpoint标签的指标。
metric_relabel_configs:
- source_labels: ['mountpoint']
regex: '(\/home|\/var\/domains)\/something.*'
action: keep
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用该drop操作,但这需要我使用负向前瞻来反转正则表达式(这不受支持,因为 Prometheus 当然是用 Go 编写的)。
我对此有何选择?
重要的是,我无法控制节点导出器的配置方式,因此我无法将节点导出器本身配置为不导出某些特定安装点的指标(如果可能的话)。