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

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

  • 相关阅读:
    javaweb 最简单的分页技术
    Jquery选择器小结
    JSON 初探
    C# GridView 的使用
    C# 操作数据库
    Java中String为什么是不可变
    Eclipse使用技巧小结
    Java File类方法使用详解
    JSP基础语法总结
    JSP取得绝对路径
  • 原文地址:https://www.cnblogs.com/sylvialucy/p/8675149.html
Copyright © 2011-2022 走看看