MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

सी # मोंगोडीबी - एक आईडी के आधार पर नेस्टेड दस्तावेज़ की सरणी से एक आइटम खींचें

अगर मैं आपकी आवश्यकता को सही ढंग से समझ गया, तो एक 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. bson.ObjectIdHex में रनटाइम पैनिक को रोकें

  2. MongoDB प्रतिकृति Azure में सेट है, मैं फ़ायरवॉल को कहाँ इंगित करूँ?

  3. मोंगो डीबी एक प्रमुख क्षेत्र के आधार पर उच्चतम मूल्य वाले सभी रिकॉर्ड ढूंढता है

  4. नया सी ++ मोंगो ड्राइवर:प्रकार कैसे देखें और स्ट्रिंग मान कैसे प्राप्त करें

  5. मोंगोडब को अपग्रेड करने का कोई प्रभाव नहीं पड़ता है और फिर भी पुराने संस्करण को दिखाता है