说我有产品清单.当我添加新产品时,我使用类似的东西保存它
var doc=products.Insert<ProductPDO>(p);
Run Code Online (Sandbox Code Playgroud)
问题是我想在完成此操作后将用户重定向到包含该产品的页面.所以我需要重定向说/products/<ObjectID>
但是,我认为没有办法在没有手动查询数据库的情况下正确获取ObjectID并查找具有所有相同字段等的文档.
有没有更简单的方法?(doc在这种情况下,由于某种原因返回null)
管理MongoServer类生命周期的最佳实践是什么?我应该创建一个并在每个请求结束时将其关闭,还是应该使用像StructureMap这样的应用程序将其保存为应用程序整个生命周期的单例?
任何帮助都很感激.
所以,有
作为MongoDB的C#驱动程序可用.
哪一个是最成熟稳定的?你为什么选择其他两个呢?
他们生产准备好了吗?
我与MongoDB共计n00b,我正在努力创造一个独特的领域EmailAddress.我已经在论坛中看到我必须创建一个索引,但到目前为止它对我来说并没有用.有人有代码示例吗?我是否必须在每次保存/调用时创建索引,还是只创建一次?
我试过这段代码:
DB.GetCollection<User>(Dbname)
.EnsureIndex(new IndexKeysBuilder()
.Ascending("EmailAddress"), IndexOptions.SetUnique(true));
DB.GetCollection<User>(Dbname).Save(user, SafeMode.True);
Run Code Online (Sandbox Code Playgroud)
我的User模型看起来像这样:
public class User
{
[Required(ErrorMessage = "Email Required")]
public string EmailAddress { get; set; }
public ObjectId Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud) 我发现检查的方法是在简单数组中包含的值:
var filter = Builders<Post>.Filter.AnyEq(x => x.Tags, "mongodb");
Run Code Online (Sandbox Code Playgroud)
但是如何通过具体领域找到包含许多字段的复杂项目?我找到了通过点符号方法用BsonDocument构建器编写它的方法,但是如何使用类型化的lambda符号呢?
UPD
我觉得它有点像
builderInst.AnyIn(p => p.ComplexCollection.Select(ml => ml.Id), mlIds)
Run Code Online (Sandbox Code Playgroud)
但现在无法检查,有人可以帮忙吗?
有没有办法将shell查询语法中表达的查询提交给mongo c#驱动程序
例如,像
Coll.find { "myrecs","$query : { x : 3, y : "abc" }, $orderby : { x : 1 } } ");
Run Code Online (Sandbox Code Playgroud)
以shell指南为例
我正在尝试保存日期(使用C#官方驱动程序):
val = DateTime.Parse(value).Date; //Here date is {11/11/2011 12:00:00 AM}
var update = Update.Set("Date", val);
...
Run Code Online (Sandbox Code Playgroud)
当我从数据库中选择日期时,值为{11/10/2011 10:00:00 PM}
如何只保存我想要的日期?
有人可以告诉我,如果有更好的方法document从使用官方C#驱动程序删除MongoDB 中的一个,而不是我以下 -
var query = Query.EQ("_id", a.Id);
database.GetCollection<Animal>("Animal").Remove(query);
Run Code Online (Sandbox Code Playgroud)
这段代码有效,但对我来说似乎太过分了.例如,"保存"命令需要一个实例并对其进行更新.我想要像 - Remove(item).
我需要检索MongoDB中我的集合中的所有文档,但我无法弄清楚如何.我已经宣布我的'收藏'像这样 -
private static IMongoCollection<Project> SpeCollection = db.GetCollection<Project>("collection_Project");
Run Code Online (Sandbox Code Playgroud)
我遵循的是在解释这个 MongoDB的教程.我根据自己的需要调整了它,比如 -
var documents = await SpeCollection.Find(new Project()).ToListAsync();
Run Code Online (Sandbox Code Playgroud)
但是,我一直有以下错误 -
MongoDB.Driver.IMongoCollection没有'Find'的定义和扩展方法[superlong stuff]的最佳覆盖.查找包含无效的参数.
我正在使用官方的mongodb c#驱动程序.我想查询mongodb simliar到SQL就像db.users.find({name:/Joe/}在c#driver中一样