Mongodb使用

到目前为止,断断续续学习了Mongo有几个月了,为避免遗忘,在这记录一下

学习文档:
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/        官方文档mongodb
http://mongodb.github.io/mongo-csharp-driver/2.4/reference/driver/crud/linq/    C#驱动
https://docs.mongodb.com/manual/reference/sql-comparison/   SQL转Mongogb

Mongodb数据库使用:

-------插入数据--------------
db.Test.insert({
    "cdata" : "2020/5/12 15:41:38",
    "ppid" : "L0194211N0011222",
    "PN" : "008000013634",
    "SN" : "PA01QMA01-SD-R",
    "result" : "PASS",
    "group" : "HLEE",
    "Data" : [ 
        {
            "RSSI" : "1234",
            "A" : "1.7",
            "ProductType" : "QSFP28 SR4"
        }
    ]
})


db.getCollection('Firware').find({"ppid":"L0194211N0011222","PN":"008000013634"},{"ppid":1,"PN":1,"SN":1})
------------查询数据总数--------------
db.getCollection('Test').find({}).count()


------------查询包含此条记录的整个文档--------------
db.getCollection('Test').find({"Result":"PASS","Data.InsideName":"TDD11"},{"PN":1,"SN":1,"Data.InsideName":1})

------------查询包含此条记录的文档的单个组数据--------------
db.Test.aggregate([
{"$unwind":"$Data"},{"$unwind":"$Data.Type"},
{"$match":{"Data.InsideName":"TDD11","Data.Type.value":"92.84"}},
{"$project":{"PN":1,"Data.Type.value":1,"Data.InsideName":1}}])
(Gt:大于,Lt:小于)


------------查询满足其中一个条件的文档的单个组数据--------------
db.Test.aggregate([
{"$unwind":"$Data"},{"$unwind":"$Data.Type"},
{"$match":{$or:[{"Data.InsideName":"TDD11","Data.Type.value":"92.57"},
{"Data.InsideName":"T33","Data.Type.value":"53.99"}]}},
])


------------查询满足此条件的数据个数--------------
db.Test.aggregate([
{"$unwind":"$Data"},{"$unwind":"$Data.Type"},
{"$match":{$or:[{"Data.InsideName":"TDD11","Data.Type.value":"92.57"},
{"Data.InsideName":"T33","Data.Type.value":"53.99"}]}},
{"$group": {_id: {}, count: { $sum: 1 } }},
{"$project":{"count":1,"_id":0}}
])


------------联表查询--------------
db.EEPROM.aggregate([
  { "$match": { "ppid": "L0194211N0011222" } },
  { "$lookup": {
    "localField": "ppid",
    "from": "Test",
    "foreignField": "ppid",
    "as": "Test"
  } },
  { "$unwind": "$Test" },
  { "$lookup": {
    "localField": "ppid",
    "from": "TRX",
    "foreignField": "ppid",
    "as": "TRX"
  } },
  { "$unwind": "$TRX" },
  { "$sort": { "date": 1 } },
  { "$limit": 1 },
  {"$project":{"ppid":1,"Data.Channel":1,"Test.Data.RSSI":1,"TRX.Data.TXP1":1}}
]);
Mongodb数据库使用

Mongodb 在.NET中使用

使用bootstrapTable时获取数据

{ field: 'uut_result.start_time', title: 'TESTTIME', sortable: true },
{ field: 'uut_result.test_result', title: 'RESULT', sortable: false },
{
         field: 'OS', title: 'OS',
         formatter: function (value, row, index) {
           return row.test_item_list[1].test_value;
         }
 },
{
          field: 'COND', title: 'COND',
          formatter: function (value, row, index) {
          return row.test_item_list[2].test_result;
          }
 },    
3层json时前台获取数据

后台获取数据:

  <connectionStrings>
    <add name="MongoHQ" connectionString="mongodb://******:27017" />
  </connectionStrings>

//连接Mongodb数据库
MongoClient client = new MongoClient(new MongoUrl(ConfigurationManager.ConnectionStrings["MongoHQ"].ConnectionString));
                    //const string connectionString = "mongodb://*****:27017";
                    //var client = new MongoClient(connectionString);
                    var database = client.GetDatabase("TestData");
                    var collection = database.GetCollection<BsonDocument>("GDTest");
                    string DataJson="";
                 //   for (int i = 0; i < str.Length; i++)   //插入多条时
                 //   {
                        BsonDocument document = BsonDocument.Parse(DataJson);
                        collection.InsertOne(document);
                 //   }
插入数据
   public static void MongoSeltest()
        {
            string CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            Console.WriteLine(CreateTime);
            //List<string> list = new List<string>();
            const string connectionString = "mongodb://****:27017";
            var client = new MongoClient(connectionString);
            var database = client.GetDatabase("AOC");
            var collection = database.GetCollection<BsonDocument>("Test");
            //显示数据
            var projection = Builders<BsonDocument>.Projection.Include("test_item_list.sub_test_item_list.test_value").Include("test_item_list.sub_test_item_list.id").Exclude("_id");
            var builder = Builders<BsonDocument>.Filter;
            //查询条件
            var filter = builder.And(builder.Eq("uut_info.work_order", "SPZS06311C1"), builder.Eq("uut_result.test_result", "passed"), builder.Eq("test_item_list.sub_test_item_list.test_result", "passed"), builder.Eq("test_item_list.sub_test_item_list.id", "1"));
            using (
       var doc = collection.Aggregate()
            //.Match(filter)
            //.Lookup("Firware", "ppid", "ppid", "Firware")
            //.Unwind("Firware")
            //.Lookup("TRX", "ppid", "ppid", "TRX")
            //.Unwind("TRX")
            //.Limit(1)
            //.Project(projection)
            //.ToCursor();

            .Unwind("test_item_list")
            .Unwind("test_item_list.sub_test_item_list")
            .Match(filter)
            .Project(projection)
            //.Limit(10)
            .ToCursor()
            )
            {
            //    int a = 0;
            //    while (doc.MoveNext())
            //    {
            //        foreach (var s in doc.Current)
            //        {
            //            a++;
            //            JObject js = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(s.ToString());
            //            string value = js["test_item_list"]["sub_test_item_list"]["test_value"].ToString();
            //            //json(value);
            //            //list.Add(value);
            //            Console.Write(a);
            //        }

            //    }

            //}
            foreach (var s in doc.ToEnumerable())
            {

                //json(s.ToString());
                JObject js = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(s.ToString());
                string value = js["test_item_list"]["sub_test_item_list"]["test_value"].ToString();
                Console.Write(value);
            }
         
            string CreateTime1 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
            File.AppendAllText(@"D:\a_文档\b.txt", CreateTime1 + "\n", Encoding.Default);
            Console.WriteLine(CreateTime1);
          
        }
    }
数据查询

 

posted @ 2021-01-29 14:46  越吃越瘦  阅读(11)  评论(0编辑  收藏  举报