0
我使用mongodb c#驅動程序,並嘗試插入初始化數組時,該字段爲空,並推動時,數組已存在的地址(在這一階段,我只是假設如果地址字段不爲空,則存在數組)。mongodb c#推或插入如果字段爲空
我正在使用下面的方法,它返回的錯誤肯定的地址值爲空,因此保持覆蓋自己與一個新的數組。
任何人都可以指向正確的方式來查詢地址是否存在空值?
public virtual async Task<UpdateResult> AddEntryToArrayAsync<X>(string address, string id, X el)
{
var isNullQuery = Builders<BsonDocument>.Filter.Eq(address, BsonNull.Value) & IdFilter(id);
var isNullCount = await Collection.CountAsync(isNullQuery);
if (isNullCount > 0)
{
var insert = Builders<BsonDocument>.Update.Set(address, new List<X>() { el });
return await Collection.UpdateOneAsync(IdFilter(id), insert);
}
var update = Builders<BsonDocument>.Update.Push(address, el);
return await Collection.UpdateOneAsync(IdFilter(id), update);
}
protected static FilterDefinition<BsonDocument> IdFilter(string id)
{
return Builders<BsonDocument>.Filter.Eq("_id", id);
}
我確信所有其他工作正常,因爲每次使用新的init都會覆蓋正確的地址。陣列