我有一个名为书籍的收藏。使用浏览特定书籍时,我通过 id 获取书籍。但我也想在每次阅读文档时将查看次数增加 1。
我可以使用 2 个命令:一个用于读取,另一个用于将视图计数器更新 1
有没有办法通过像 findAndModify 这样的单个命令来做到这一点?
如何使用 CSharp 驱动程序使用它?
Books:
{
{
"_id": "1"
"title" : "Earth Day",
"author" : "John ",
"pages" : 212,
"price" : 14.5,
"views" : 1000
},
{
"_id": "2"
"title" : "The last voyage",
"author" : "Bob",
"pages" : 112,
"price" : 10.5,
"views" : 100
}
}
我有这个:
var query = Query.And(Query.EQ("_id", id));
var sortBy = SortBy.Null;
var update = Update.Inc("views", 1);
var result = Books.FindAndModify(query, sortBy, update, true);
但是如何取回匹配的文件?
编辑:我得到它的工作..
return result.GetModifiedDocumentAs<T>();
我的问题是这个调用 GetModifiedDocumentAs() 会再次访问数据库吗?