2011-10-11 13 views
13

में BsonValue और कस्टम कक्षाएं मैं C# ड्राइवर के साथ, mongodb में एक अद्यतन क्वेरी में $push का उपयोग करने का प्रयास कर रहा हूं।मोंडोडीबी सी # चालक

Update.Push(...) विधि के लिए एक स्ट्रिंग नाम (यह ठीक है) की आवश्यकता होती है, और एक BsonValue 'push' होने की आवश्यकता होती है। यह वह जगह है जहां मैं समस्याओं में भाग लेता हूं। मैं फ़ील्ड की सरणी में एक गैर साधारण प्रकार को धक्का देने की कोशिश कर रहा हूं।

उदाहरण के लिए: { $push : { "arrayfield" : { "a" : 7, "b" : 12 } } }

यह मोंगो कंसोल में ठीक काम करता है, लेकिन मैं समझ नहीं कैसे एक BsonValue में मेरी वस्तु बनाने के लिए। मैंने BsonValue.Create(myObjectInstance) की कोशिश की है, लेकिन यह मुझे एक त्रुटि देता है कि .NET प्रकार को BsonValue में मैप नहीं किया जा सकता है।

क्या मुझे कुछ आसान याद आ रही है?

उत्तर

14

मैं दो दृष्टिकोण पता:

  1. Update.PushWrapped<MyObject>("arrayfield", myObjectInstance); // C# चालक> = 1,0

  2. या ToBsonDocument() विस्तार विधि के माध्यम से अपने आप को BsonValue करने के लिए अपने वर्ग में परिवर्तित।

    Update.Push("arrayfield", myObjectInstance.ToBsonDocument());

+0

मैं उसके लिए धन्यवाद .ToBsonDocument() का उपयोग कर समाप्त हो गया है, लेकिन .PushWrapped कुछ है मैं पूरी तरह से अनजान था,! – Redth

संबंधित मुद्दे