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

C# MongoDB - Изтеглете елемент от масива на вложен документ въз основа на ID

ако съм разбрал правилно вашето изискване, pullFilter е това, от което се нуждаете.

var filter = Builders<UserCollection>.Filter.Where(u => u.User.Contacts.Any(c => c._Id == contactID));
var update = Builders<UserCollection>.Update.PullFilter(u => u.User.Contacts, c => c._Id == contactID);
collection.UpdateOne(filter, update);

ето пълната програма за тестване, ако някой се интересува.

using MongoDB.Entities; // PM> Install-Package MongoDB.Entities
using MongoDB.Bson;    
using System.Linq;

namespace StackOverflow
{
    public class Program
    {
        public class UserCollection : Entity
        {
            public User User { get; set; }
        }

        public class User
        {
            public Contact[] Contacts { get; set; }
        }

        public class Contact
        {
            public ObjectId _Id { get; set; }
        }

        private static void Main(string[] args)
        {
            new DB("test");

            var contactID = ObjectId.GenerateNewId();

            (new UserCollection
            {
                User = new User
                {
                    Contacts = new[]
                    {
                        new Contact { _Id = ObjectId.GenerateNewId()},
                        new Contact { _Id = contactID}
                    }
                }
            }).Save();

            DB.Update<UserCollection>()
              .Match(u => u.User.Contacts.Any(c => c._Id == contactID))
              .Modify(b => b.PullFilter(u => u.User.Contacts, c => c._Id == contactID))
              .Execute();
        }
    }
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да конкатенираме масиви от множество документи в MongoDB?

  2. Как да изтрия стара версия на mongodb и да инсталирам новата в cloud9 IDE?

  3. Как да разрешим TypeError:unhashable type 'list'

  4. Как да изтегля файл, съхранен с помощта на GridFS и върнат с помощта на GraphQL в React/Javascript клиента?

  5. Намиране на два елемента в масив от документи, които се появяват в даден ред