MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да контролирате дефиницията на проекцията в MongoDb с помощта на C#

Това е mongo shell заявка с MongoDB v4.2.8.

Разгледайте този входен документ:

{
        "_id" : 1,
        "name" : "john",
        "stuff" : {
                "mycolor" : "red",
                "fruit" : "apple",
                "mybook" : "programming gems",
                "movie" : "star wars"
        }
}

Целта е да проектирате name и stuff полета, но stuff само с имена на полета, започващи с "my" .

Заявката за агрегиране:

db.test.aggregate([
  { 
      $project: { 
          _id: 0, 
          name: 1, 
          stuff: { 
              $filter: { 
                  input: { $objectToArray: "$stuff" }, 
                  as: "stf", 
                  cond: { $regexMatch: { input: "$$stf.k" , regex: "^my" } }
              }
          }
      }
  },
  { 
      $addFields: { stuff: { $arrayToObject: "$stuff" } } 
  }
])

И прогнозираният резултат:

{
        "name" : "john",
        "stuff" : {
                "mycolor" : "red",
                "mybook" : "programming gems"
        }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Искам да пренасочвам към различни страници въз основа на някакво условие

  2. Защо не мога да отстранявам грешки в кода в асинхронен метод?

  3. Perl Mongo намери обект Id

  4. Интеграционно тестване с Testcontainers + Quarkus + MongoDB

  5. Какво е поведението при задаване на таймаут при изпълнение на тръбопровода за агрегиране в драйвера на MongoDB Java?