Tag: mongodb query

MongoDB的push和root的C#等价物是什么?

我有一群人。 我试图为每个名字找到最老的人。 我可以使用mongoDB控制台命令实现该结果 db.People.aggregate([ { ‘$sort’: { ‘Name’: 1, ‘Age’: -1 } }, { ‘$group’: { ‘_id’: ‘$Name’, ‘docs’: { ‘$push’: ‘$$ROOT’ }, } }, { ‘$project’: { ‘top_one’: { ‘$slice’: [‘$docs’, 1] } } } ]) 对于C#驱动程序,这相当于什么? 我特别遇到麻烦 ‘docs’: { ‘$push’: ‘$$ROOT’ }, 这是我当前的C#查询: collection.Aggregate(aggArgs) .SortByDescending(x => x.Age) .Group(x => x.Name, x => new […]

无法使用接口确定i => i.Id的序列化信息

首先,我知道已经存在此错误消息的问题,但我没有发现任何与使用此类查询的接口相关的问题。 我目前正在尝试使用C#Driver 2.0更新MongoDB实体。 但是,我在尝试构建查询时遇到错误(我假设它是Builders.Filter.Eq(i => i.Id, entity.Id)代码)并且我是收到以下错误: 无法确定i => i.Id的序列化信息。 我有以下课程,我正在尝试更新 public interface IEntity { string Id { get; set; } } public interface ITrack : IEntity { string Name { get; set; } } public class TrackDTO : ITrack { [BsonId] public string Id { get; set; } public string Name { get; set; […]

更新mongodb文档中的特定字段

我使用C#驱动程序在小项目中使用MongoDb,现在我坚持更新文档。 试图弄清楚如何更新字段AVG (int) 这是我的代码: IMongoCollection studentCollection = db.GetCollection(“studentV1”); Student updatedStudent = new Student() { AVG = 100, FirstName = “Shmulik” }); studentCollection.UpdateOne( o=>o.FirstName == student.FirstName, ****); 有一种简单而干净的方法来更新特定字段,如方法ReplaceOne(updatedStudent) ?

使用C#驱动程序从MongoDB Collection上的文本查询中检索相关性排序结果

我正在尝试文本查询集合并以文本匹配顺序检索结果。 文档很好地解释了如何在shell中执行此操作: db.articles.find( { status: “A”, $text: { $search: “coffee cake” } }, { score: { $meta: “textScore” } } ).sort( { date: 1, score: { $meta: “textScore” } } ) 但它需要将查找中的附加score字段投影到排序中。 在C#中,我有一个如下所示的函数: public IEnumerable TextSearch(MongoCollection coll, string text) { var cursor = coll.Find(Query.Text(text)) .SetSortOrder(SortBy.MetaTextScore(???)); foreach(var t in cursor) { // strip projected score from […]

在.net中的mongodb中进行全文搜索

我必须在.net mvc中搜索mongodb特定集合中的所有文档中的内容。 我已经通过像这里成功创建索引一样尝试了mongodb shell。 db.collection_name.createIndex( { subject: “text” } ) db.collection_name.find( { $text: { $search: “search_word” } } ) 它工作正常。 但是,当我把它放在.net中,这给了我错误。 我用Google搜索并获得了索引的以下解决方案。 collection.EnsureIndex(new IndexKeysBuilder().Ascending(“subject”)); 现在我怎么能运行这个查询db.collection_name.find( { $text: { $search: “coffee” } } ) 。 我按照以下方式尝试.net。 collection.CreateIndex(“subject”:”text”); var query = collection.Find({ $text: { $search: “coffe” }}); 但我在第一行收到错误“表示文本为unicode系列….语法错误” 第二行错误“没有给出对应于所需forms参数的参数”和“意外字符$”。 任何建议将不胜感激。

与使用数组更新运算符$ 的以下查询等效的MongoDB C#驱动程序是什么

来自https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#up。 S [%3Cidentifier%3E] 鉴于以下收集 { “_id” : 1, “grades” : [ { “grade” : 80, “mean” : 75, “std” : 6 }, { “grade” : 85, “mean” : 90, “std” : 4 }, { “grade” : 85, “mean” : 85, “std” : 6 } ] } { “_id” : 2, “grades” : [ { “grade” […]

用C#投影切片

有没有办法使用c#驱动程序在一个查询中实现切片和投影? 下面是我想用c#实现的目标,但即时通讯卡住,任何人都可以帮我解决这个问题吗? db.employee.find({“employeeId”: “999”}, { “empActivity” : { “$slice”: -1 } }, {“employeeId”: 1, “empActivity.transId”: 1, _id: 0}) 注意:empActivity是一个包含嵌套文档的数组,上面的查询通过mongo shell完美地工作,但我无法在C#中找出它的等价物。

在C#.Net中调用MongoDB存储的Javascript函数

我需要在C#代码中调用MongoDB存储的JavaScript函数。 我存储的JavaScript函数GetUserInfo function() { return db.getCollection(‘Profession’).find({}); } 执行: db.loadServerScripts(); GetUserInfo(); 它返回带有以下文档的Collection(这里我只粘贴了2个文档,实际上我有超过10K的文档) { “_id” : ObjectId(“575845a713d284da0ac2ee81”), “Profession_id” : “575841b313d284da0ac2ee7d”, “Prof_Name” : “Chief Officer” } { “_id” : ObjectId(“575845d213d284da0ac2ee82”), “Profession_id” : “575841b313d284da0ac2ee7d”, “Prof_Name” : “Executive Officer” } 在C#中: IMongoClient _client; IMongoDatabase _database; _client = new MongoClient(); _database = _client.GetDatabase(“SampleDB”); 请帮助我如何在C#代码中调用MongoDB存储的JavaScript函数。 以下问题使用Eval 。 在最新的驱动程序中, 我无法找到扩展函数_database.Eval 通过C#调用MongoDB中的存储过程 请帮助我……

使用BsonRepresentation(BsonType.ObjectId)与BsonId对比ObjectId来装饰C#中的属性之间的区别

我是mongodb的新手并且很喜欢不用担心架构的问题,我有一个问题,假设你想在mongo中使用Id属性而mongo使用ObjectId来表示属性Id,到目前为止我看到你可以拥有或装饰一个Id如下, public ObjectId Id {get; set;} //or [BsonId] public string Id {get; set;} //or [BsonId] [BsonRepresentation(BsonType.ObjectId)] public string Id {get; set;} 任何人都可以向我解释为什么大多数人会选择最后一种类型,以及最新情况以及灵活性如何帮助。 谢谢?

MongoDB和C#Find()

我有以下代码,我是mongodb的新手,我需要帮助找到集合中的特定元素。 using MongoDB.Bson; using MongoDB.Driver; namespace mongo_console { public class User { public ObjectId Id { get; set; } public string name { get; set; } public string pwd { get; set; } } class Program { static void Main(string[] args) { MongoClient client = new MongoClient(); MongoServer server = client.GetServer(); MongoDatabase db = server.GetDatabase(“Users”); […]