我是学习如何使用MongoDB的新手,并且很早就被卡住了,所以希望有人能用一个简单的例子来帮助我。
我可以成功连接到Mongo服务器并创建一个集合并创建要放入其中的对象。我通过c#和c#驱动程序完成所有这些工作。
我的代码中定义了以下自定义对象。
public class Feature
{
public string FeatureName { get; set; }
public ObjectId Id { get; set; }
public List<Scenario> Scenarios { get; set; }
}
public class Scenario
{
private string _notes;
public string ScenarioName { get; set; }
public List<string> Givens { get; set; }
public List<string> Whens { get; set; }
public List<string> Thens { get; set; }
public string Explanation { get; set; }
public string Notes { get; set; }
}
如您所见,Feature对象包含一个属性,它是一个场景列表。
在我的Mongo集合中,我有一个包含3个场景的Feature对象。我想在C#中做的是编写一个可以从特征中删除特定场景的方法:
我确信当我看到一个示例时,这可能会很明显,但我已经尝试过试图通过List属性查找子对象上的属性。
我希望一切都有道理??!?
提前致谢。
P
答案 0 :(得分:2)
我自己解决了......
public bool DeleteScenario(string featureName, string scenarioName)
{
var collection = GetCollection<Feature>();
var query = Query.EQ("FeatureName", featureName);
var resultingFeature = collection.Find(query).SetLimit(1).FirstOrDefault();
if (resultingFeature == null)
{
return false;
}
// we have found our feature and it exists.
foreach (var scenario in resultingFeature.Scenarios)
{
if (scenario.ScenarioName == scenarioName)
{
resultingFeature.Scenarios.Remove(scenario);
collection.Save(resultingFeature);
return true;
}
}
return true;
}