MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tìm tài liệu con lồng nhau cấp n MongoDB

Trong c #, chúng ta có thể tạo một phương thức đệ quy để đạt được tình huống này.

Đây là BsonDocument tôi đã tạo:

 BsonDocument doc = new BsonDocument {
            { "id","1"},
            { "DocType", "Unidade"},
            { "Nome", "TONY"},
            { "RG_InscricaoEstadual", "4347924938742"},
            { "Setores",new BsonArray {
             new BsonDocument {
             { "id","9" },
             { "Nome", "Child0"},
             { "Setores", new BsonArray { new BsonDocument {
                          { "id","10" },
                          { "Nome", "Child1"},
                          { "Setores", new BsonArray { new BsonDocument {
                                       { "id","11" },
                                       { "Nome", "Child2"},
                                       {  "Id","90228c56-eff2-46d2-a324-b04e3c69e15c" },
                                       { "DocType", "Setor"}
                                       }
                                       }
                          },
                          {  "Id","60228c56-dff2-46d2-a324-b04e3c69e15b" },
                          { "DocType", "Setor"}
                 }
                 }
                 },
                 {  "Id","8457e1b7-39dc-462c-8f46-871882faea2c" },
                 { "DocType", "Setor"}
                 }
            }
            }
            };

Bạn có thể sử dụng Phương thức truy vấn Mongo c # để lấy BsonDocument này từ MongoDB.

Đây là phương pháp đệ quy tôi đã sử dụng để truy vấn tài liệu qua "Id":BsonDocument result = GetID(doc, "90228c56-eff2-46d2-a324-b04e3c69e15c");

 public static BsonDocument GetID(BsonDocument doc, string queryId)
    {
        BsonDocument result = new BsonDocument();
        if (doc.Elements.Where(c => c.Name == "Setores").Count() != 0)
        {
            foreach (var item in doc.GetElement("Setores").Value.AsBsonArray)
            {
                var id = item.AsBsonDocument.GetElement("Id").Value;
                if (id == queryId)
                {
                    result = item.AsBsonDocument;
                    break;
                }
                result = GetID(item.AsBsonDocument, queryId);
            }
        }
        return result;
    }

Tôi hy vọng điều này có thể cung cấp cho bạn một số mẹo.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách chờ trong Node.js

  2. Trình điều khiển C # MongoDB bỏ qua các tùy chọn thời gian chờ

  3. Tổng quan về MongoDB Atlas:Phần một

  4. Các vấn đề với CORS. Bình <-> AngularJS

  5. trình điều khiển java mongodb - lệnh thô?