zoukankan      html  css  js  c++  java
  • MongoDB复杂查询语句记录

    前段时间做业务监控,用到了MongoDB,有一个查询是把一个含array的list里面查询array中是否存在某一对unique值,不存在的情况下插入一条记录。

    类似这样一个表:

    Biao{

    id,

    field1,

    field2,

    List<string> Places,

    List<People> Peoples

    }

    People{FistName, LastName, Age, xxx}

    需要查询field1=xxx, (array)Places 包含ppp,(array)Peoples不含组合{FirstName, LastName}的document,插入一条People

     1  var fdb = Builders<Biao>.Filter;
     2 
     3  var subFilter1 = fdb.Where(
     4         t => t.field1 == xxx
     5           && t.Places.Contains("ppp"));
     6  var subFilter2 = fdb.ElemMatch(p => p.Peoples,
     7         Builders<People>.Filter.Where(t => t.FirstName == name1 && t.LastName== name2));
     8 
     9  var filter = fdb.And(subFilter1, fdb.Not(subFilter2));
    10 
    11  _collection.UpdateMany(filter,
    12      Builders<Biao>.Update.AddToSet(e => e.Peoples, info));

    类似就是这样的查法了,因为举例改了表名字段名,大概方法是这样,网上查了很久没有一样的,配合着各种查法自己写出来的,留着以后用。

  • 相关阅读:
    模拟实现链表
    模拟实现内存操作函数
    实现一个简单的进度条
    简单的通讯录(C语言实现)
    sizeof和strlen
    动态联编
    不用第三个变量交换两个变量的值
    内存对齐
    字符串指针和字符数组的区别
    vs中的一些bug解决
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/8675149.html
Copyright © 2011-2022 走看看