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));

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

  • 相关阅读:
    10月6日动手动脑
    10月5日
    SQL
    bug 对应
    @OneToMany
    SQL Constraints
    SQL级联删除——删除主表同时删除从表——同时删除具有主外键关系的表
    子父表
    取字符串
    SQL中MAX()
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/8675149.html
Copyright © 2011-2022 走看看