MongoDBのUsers
というコレクションに次のようなdocument
があります。私はmycellar
cellar
のbeersInCellar[]
に<SpecificBeer>
を挿入しようとしています。私はfilter
とupdate
オブジェクトですべての種類の組み合わせを試しましたが、ネストされた配列に挿入することで頭を包むことはできません。私はfind
document
の方法を知っていて、その文書の配列には挿入しないでください。C#MongoDBのネスト配列に挿入
{
"_id" : ObjectId("5920751b6d4f6a27cf7985a8"),
"name" : "FullName",
"emailAddress" : "[email protected]",
"cellars" : [
{
"cellarId" : "mycellar",
"cellarName" : "My Cellar",
"beersInCellar" : [ ]
}
]
}
SpecificBeerモデル:
public class SpecificBeer
{
public string ourid
{
get
{
return ID.ToString();
}
set
{
ID = ObjectId.Parse(value);
}
}
[BsonId]
private ObjectId ID {get; set;}
public string year { get; set; }
public string variant { get; set; }
public string quantity { get; set; }
public string numberForTrade { get; set; }
}
Insertメソッド
public async Task<SpecificBeer> AddBeerToList(string id, SpecificBeer specificBeer, string cellarId)
{
var filter = Builders<User>.Filter.Eq(e => e.userId, id) & Builders<User>.Filter.Eq(e => e.cellars, cellarId);
var update = Builders<Cellar>.Update.Push<SpecificBeer>(e => e.beersInCellar, specificBeer);
await _collection.FindOneAndUpdateAsync(filter, update);
return specificBeer;
}
これは数多くの情報でした。ありがとうございました!私はおそらく私のスキーマを考え直すでしょう。 – Jrow