Tomó un trabajo recientemente donde usan Mongo. Vengo de un fondo de SQL. Estoy tan frustrado incluso con los conceptos básicos de Mongo. Eres mi último recurso antes de que suplique cambiar.
Tengo una colección con un documento en ella. El documento actualmente tiene dos matrices, pero contendrá muchas más. Simplemente quiero agregar un valor a cualquiera de estas matrices. (Usando C#)
¿Es eso una actualización o simplemente un complemento? No he tenido éxito en encontrar ninguna solución ni siquiera cerca de resolver esto.
El mayor éxito que he tenido hasta ahora es devolver la colección completa. Me gusta esto:
var corrosion = collection.Find(new BsonDocument()).ToList();Supongo que podría crear un nuevo archivo JSON, agregarle mi valor, luego intentar cargarlo nuevamente en mongo, pero eso parece mucho más trabajo del necesario.
¿Hay alguna manera de tomar un valor de cadena y agregarlo a cualquiera de estas matrices?
{"_id":{"$oid":"Random nums and lets"}, "FreeCr":[ "Add New", "4130 ", "1008 ", "AA70", "AA2", "AA6", "EN9" ],"GalCr":[ "Add New", "AA7 / A286", "AAT6 / 316SS", "AA / Ti6-4", "AA / 4130 Steel", "AA / CFRP", "AA / A286", "AA / Ti6-4", "AA / 4130 Steel", "AA / Ti6-4", "316SS", "1008 Steel" ] }Su ayuda es muy apreciada.
Es más una actualización. Mongo todavía tiene operaciones CRUD. Suponiendo que tiene un CorrosionModel similar a este:
public class CorrosionModel { [BsonId] [BsonRepresentation(BsonType.ObjectId)] public ObjectId Id { get; set; } public List<string> FreeCr { get; set; } public List<string> GalCr { get; set; } }Prueba esto:
List<CorrosionModel> corrosion = collection.Find(new BsonDocument()).ToList(); //get your model List<string> curList = corrosion[0].FreeCr; //modify your model curList.Add("NEW VALUE2!"); //update Mongo var filter = Builders<CorrosionModel>.Filter.Eq("Id", corrosion[0].Id); collection.ReplaceOne(filter, corrosion[0], new ReplaceOptions { IsUpsert = true });