gpt4 book ai didi

MongoDB 数组对象更新和页面

转载 作者:可可西里 更新时间:2023-11-01 09:13:20 26 4
gpt4 key购买 nike

我有一个存储在 MongoDB 中的实体类,看起来类似于这些:

public class Theme
{
public ObjectId Id { get; set; }
public string Description { get; set; }
public string Title { get; set; }
public List<Comment> CommentList { get; set; }
}


public class Comment
{
public string Content { get; set; }
public string Creator { get; set; }
public string Date { get; set; }
}

使用MongoDB C#驱动,基于模型,如何解决以下问题:

  1. 更新主题的评论,例如:theme1.CommetList[10].Creator = "Jack"
  2. 如何为数组对象分页

谢谢。

温特尔


@安德鲁·奥西奇

感谢您的帮助。

还有一个问题:

var query = Query.EQ("Id", id);   //The 'id' type is ObjectId
List<Theme> newDatas = themeCollection.FindAs<Theme>(query).ToList();
Theme newData = themeCollection.FindOneByIdAs<Theme>(allDatas[0].Id);

结果:'newDatas'为空,'newData'有数据,为什么?

最佳答案

1.使用positional operator :

var query = Query.And(Query.EQ("Id", id));
var update = Update.Set("CommetList.10.Creator", "Jack");

您可能还需要将 id 添加到 Comment 类。在这种情况下,您可以像这样更新匹配的查询评论:

var query = Query.And(Query.EQ("Id", id), Query.EQ("CommentList.Id", commentId));
var update = Update.Set("CommentList.$.Creator", "Jack");

2.例如,您可以使用 linq 从 c# 加载整个主题并对评论进行分页。或者你也可以使用 $slice像这样:

var comments = themeCollection
.FindAs<Comment>()
.SetFields(Fields.Slice("Comments", 40, 20))
.ToList();

关于MongoDB 数组对象更新和页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com