Mongodb嵌套CRUD c#

时间:2013-05-04 15:12:18

标签: c# mongodb

您好我刚开始在Mongo DB c#周围建立一个cms。

我有一个基本的文档看起来像这里为了简单而删除了一些字段......

{ "_id" : ObjectId("518438c35ea2e913ec41c138"), "Content" : "Some html content here", "Title" : "Robs Article", "Author" : "Rob Paddock", "DatePosted" : ISODate("0001-01-01T00:00:00Z"), "ArticleStatus" : "Live" }

要调用该文档,我有以下代码

public IEnumerable<Article> GetArticleDetails(int limit, int skip)
    {
        var articlesCursor = this.MongoConnectionHandler.MongoCollection.FindAllAs<Article>()
            .SetSortOrder(SortBy<Article>.Descending(a => a.Title))
            .SetLimit(limit)
            .SetSkip(skip)
            .SetFields(Fields<Article>.Include(a => a.Id, a => a.Title, a => a.Author));
        return articlesCursor;
    }

创建我有的新文档

 public virtual void Create(T entity)
    {
        //// Save the entity with safe mode (WriteConcern.Acknowledged)
        var result = this.MongoConnectionHandler.MongoCollection.Save(
            entity,
            new MongoInsertOptions
            {
                WriteConcern = WriteConcern.Acknowledged
            });

        if (!result.Ok)
        {
            //// Something went wrong
        }
    }

我的问题是如何改变上述内容以允许“内容”成为列表,因为我可能希望在页面上有多个内容块。

1 个答案:

答案 0 :(得分:0)

public class Article
{
    public BsonObjectId Id { get; set; }
    public List<string> Content { get; set; }
    public string Title { get; set; }
    public string Author { get; set; }
    public string DatePosted { get; set; }
    public string ArticleStatus { get; set; }

    public void AddContent(string c)
    {
        if (Content == null)
        {
            Content = new List<string>();
        }
        Content.Add(c);
    }
}

...

        var article = new Article { Title = "Robs Article", Author = "Rob Paddock", DatePosted="1/1/1980", ArticleStatus="Live" };
        article.AddContent("Some html content here");
        article.AddContent("NYT Featured");
        article.AddContent("Recommended for gourmets");

        var articleCollection = database.GetCollection<Article>("articles");
        articleCollection.Insert(article);

...

> db.articles.find()
{ "_id" : ObjectId("5185358ee153db0e0c6fa36a"), "Content" : [ "Some html content here",   "NYT Featured", "Recommended for gourmets" ], "Title" : "Robs Article", "Author" : "Rob  Paddock", "DatePosted" :
 "1/1/1980", "ArticleStatus" : "Live" }