小编Art*_*hur的帖子

使用MongoDB和C#新驱动程序版本(2.0)从集合更新嵌入文档

我有一个带有嵌入式服务列表的模型:

public class Project
{
    public ObjectId Id { get; set; }
    public List<Service> Services { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

public class Service
{
    public int Id { get; set; }
    public MachineInfo Info { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想将与projectId和serviceId匹配的Info属性修改为列表的项目.对于旧驱动程序,它是:

var result = collection.Update(
        Query.And(
          Query.EQ("_id", projectId),
          Query.ElemMatch("Services", Query.EQ("Id", serviceId))
        ), 
var update = Update.Set("Services.$.Info", newInfo);
Collection.Update(query, update);
Run Code Online (Sandbox Code Playgroud)

但是使用新驱动程序,我无法使用位置运算符'$':

var filter = Builders<Project>.Filter.And(Builders<Project>.Filter.Eq(x => x.Id, projectId),
    Builders<Project>.Filter.ElemMatch(x => x.Services, x => x.Id == serviceId));
var update = Builders<Project>.Update.Set(x => …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb-.net-driver

5
推荐指数
1
解决办法
2646
查看次数

使用 Kubernetes Ingress 公开 Pulsar 代理

我使用 helm 部署了 pulsar,但没有激活 tls。现在我想使用 nginx 入口来公开它,而不是第一次使用 tls。它不起作用,我在客户端得到这个:

Got exception TooLongFrameException : Adjusted frame length exceeds 5253120: 1213486164 - discarded
Run Code Online (Sandbox Code Playgroud)

是否缺少特定注释?

第二次,我想使用 ssl 证书以安全的方式公开它。Ingress 可以与 pulsar+ssl 协议一起使用吗?我还需要具体注释吗?

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: pulsar
  namespace: default
spec:
  rules:
  - host: pulsar.myurl.com
    http:
      paths:
      - backend:
          serviceName: pulsar-proxy
          servicePort: 6650
  tls:
  - hosts:
    - pulsar.myurl.com
    secretName: pulsar.myurl.com.crt
Run Code Online (Sandbox Code Playgroud)

ssl apache-pulsar kubernetes-ingress nginx-ingress

1
推荐指数
1
解决办法
1022
查看次数