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

C # MongoDB - Kéo một mục từ mảng của tài liệu lồng nhau dựa trên ID

nếu tôi hiểu đúng yêu cầu của bạn, một pullFilter là những gì bạn cần.

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

đây là chương trình đầy đủ để thử nghiệm nếu ai đó quan tâm.

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. Mẹo lưu trữ bản sao lưu MongoDB trên đám mây

  2. MongoEngine chỉ định tùy chọn đọc trên truy vấn

  3. Viết cố vấn đầu tiên của bạn

  4. Một bộ sưu tập MongoDB có thể có một bộ sưu tập khác bên trong nó không?

  5. Khi máy chủ mongodb gặp sự cố, cách bắt lỗi khi chạy truy vấn mongoose