鉴于NoSQL的流行,决定也跟着潮流鼓捣一番,嘿嘿,顺便也学学MVC3 。
我用的是Norm驱动,感觉要比MongoDb自带的驱动用起来爽多了,强类型支持使用方便直观!
先上模型和Action代码,做个简单的实例:
Model:Product类
代码
public class Product
{
public string Id { get; set; }
[Required]
public int Category { get; set; }
[Required]
public string Name { get; set; }
[Required]
public float Price { get; set; }
public Product()
{
Id = System.Guid.NewGuid().ToString();
}
}
Action:批量更新方法
代码
public ActionResult BatchUpdate()
{
MongoDb.Get()
//将价格等于123的产品的价格改为100
.Update(new { Price = 123 }, p => p.SetValue(y => y.Price, 100f), true, false);
return RedirectToAction("List", new { cate = 1, page = 1 });
}
Action:产品列表方法
代码
public ActionResult List(int cate, int page)
{
IEnumerable list = MongoDb.Get()
.Find(new { Category = cate });
return View(list);
}
在BatchUpdate 方法中,p.SetValue(y =>y.Price, 100f)中的100f的f一定不能少,否则它会当做int类型存储,更新的方法不会报错,
但跳转到List页面调用Find方法时,它就报如下图这么个奇怪的错误!
然后我到控制台上db.Product.Remove({Price:100})掉刚才错误设置的记录,再刷新List页面,就没有报错了。
不知道有谁碰见过没有,第一次用MongoDb请大家多多指点。
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com