Как выполнить вставку JObject в MongoDB? - PullRequest
0 голосов
/ 01 апреля 2020

Я хочу выполнить операции crud на MongoDB, используя ниже JObject(Field)

  1. Мой класс объектов содержит некоторые свойства, имеющие строковые и List объекты.
  2. iam, преобразующие эти свойства в JObject как показано ниже

Код:

public static JObject ConstructFieldBody(prop1,prop2,prop3)
    {
        return new JObject
        (
            new JProperty("prop1", "value"),
            new JProperty("prop2", "value"),
            new JProperty("prop3", "value"),
        );
}

Затем я вызвал приведенный ниже код из основного метода следующим образом:

MyClass myClass= new MyClass
{
    prop1= "value",
    prop2= "value",
    prop3= "value",

};
JObject jObj =  myClass.ConstructFieldBody("valu1",valu2,"valu3");
myrepo.InsertSingle("Field", jObj);

внутри insertSingle() вставить код как показано ниже

public void InsertSingle<T>(string table, T record) {
     var _collection = _database.GetCollection<T>(table);
     _collection.InsertOne(record);
}

наконец мне нужно вставить Поле JObject в базу данных mon go.

1 Ответ

0 голосов
/ 02 апреля 2020

JObject происходит из библиотеки Newtonsoft. Json, это тип, представляющий объект json. Он полностью отличается от BsonDocument, так как MongoDB представляет свои данные.

Что нам нужно сделать, это преобразовать их между двумя, ниже приведен простой способ сделать это, однако вам может потребоваться изменить его, если вам требуется больше производительности

var client = new MongoClient();
var database = client.GetDatabase("test");
await client.DropDatabaseAsync(database.DatabaseNamespace.DatabaseName);
var collection = database.GetCollection<BsonDocument>("collection");

// Get our JObject
var jObject = new JObject
(
    new JProperty("prop1", "value"),
    new JProperty("prop2", "value"),
    new JProperty("prop3", "value")
);

// Convert the JObject to a string json
var json = jObject.ToString();

// Convert the json to a Bson Document
var bsonDocument = BsonDocument.Parse(json);


await collection.InsertOneAsync(bsonDocument);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...