MongoDB Tips

关联查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
db.task.aggregate([
{ $lookup: {
let: { "modeId":{ "$toObjectId": "$modem" } },
from: "modem",
pipeline: [
{ "$match": { "$expr": { "$eq": [ "$_id", "$$modeId" ] } } }
],
as: "output"
}},
{
$set: {
modem_name: { $arrayElemAt: ["$output.name", 0] }
}
},{
$project: {
output: 0
}
}])

kubectl tips

更新 CR Status 字段

参考 Update K8s CR Status

强制删除 Namespace

参考 force-delete-namespace.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env bash

set -e
set -o pipefail

kubectl proxy &
proxy_pid="$!"
trap 'kill "$proxy_pid"' EXIT

for ns in $(kubectl get namespace --field-selector=status.phase=Terminating --output=jsonpath="{.items[*].metadata.name}"); do
echo "Removing finalizers from namespace '$ns'..."
curl -H "Content-Type: application/json" -X PUT "127.0.0.1:8001/api/v1/namespaces/$ns/finalize" -d @- \
< <(kubectl get namespace "$ns" --output=json | jq '.spec = { "finalizers": [] }')

echo
echo "Force-deleting namespace '$ns'..."
kubectl delete namespace "$ns" --force --grace-period=0 --ignore-not-found=true
done