我使用的是用于C#的2.2版MongoDB驱动程序.我想对查询进行分页:对查询的响应必须包含当前页面的项目以及与查询匹配的项目总数.
我想做一个查询.使用mongo shell我可以意识到:
var c = db.mycol.find({....}).skip(0).limit(10)
var total = c.count();
while (c.hasNext()) {
print(tojson(c.next()));
}
Run Code Online (Sandbox Code Playgroud)
但是使用C#驱动程序,我不知道如何只使用一个查询.
var find = collection
.Find(x => x.Valid == true)
.Skip(0)
.Limit(10);
var cursor = await find.ToCursorAsync(cancellationToken);
// How to get the count? There is no method in the IAsyncCursor interface.
Run Code Online (Sandbox Code Playgroud)
可能吗 ?一些想法?
我编写了一个简单的angular 2组件,其中显示了一个Bootstrap选项卡。我想处理引导事件show.bs.tab。我试图将事件处理程序放在ul和所有标签上,但没有收到任何事件。
@Component({
selector: 'tabpanel',
template: `
<div>
<ul class="nav nav-tabs" role="tablist" (show.bs.tab)="onTab()">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab" (show.bs.tab)="onTab()">Home</a></li>
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab" (show.bs.tab)="onTab()">Profile</a></li>
<li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab" (show.bs.tab)="onTab()">Messages</a></li>
<li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab" (show.bs.tab)="onTab()">Settings</a></li>
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home">1...</div>
<div role="tabpanel" class="tab-pane" id="profile">2...</div>
<div role="tabpanel" class="tab-pane" id="messages">3...</div>
<div role="tabpanel" class="tab-pane" id="settings">4...</div>
</div>
</div>`,
directives: [CORE_DIRECTIVES]
})
class TabbedPanel {
onTab() {
console.info('tab !!');
}
}
Run Code Online (Sandbox Code Playgroud)
如何接收引导事件?对于诸如fullcalendar,暴露各种事件的openlayers之类的库的事件,我可能会有相同的问题。我使用角度2 alpha 44。
我有一个用这样的类映射的用户集合:
class User
{
public String Id { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
Id 属性是文档的标识符;它在 C# 中由一个字符串表示,但在 mongo 中是一个 objectid。以下映射允许确保这一点:
BsonClassMap.RegisterClassMap<User>(cm =>
{
cm.MapIdProperty(x => x.Id)
.SetSerializer(new StringSerializer(BsonType.ObjectId))
.SetIdGenerator(StringObjectIdGenerator.Instance);
...
}
Run Code Online (Sandbox Code Playgroud)
我有另一个名为 Book 的集合;每本书都可以由一个或多个作者撰写。
class Book
{
public String Id { get; set; }
public String Title { get; set; }
public IList<String> Authors { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
Id 属性与 User 集合的相同。我希望每个作者都作为 objectid 而不是 string 存储在 mongo 中:但我不知道该怎么做:我不想定义 autors 属性的序列化程序,而是定义该属性的每个元素的序列化程序。
BsonClassMap.RegisterClassMap<Book>(cm =>
{
cm.MapIdProperty(x => x.Id) …Run Code Online (Sandbox Code Playgroud) 可以说,我有三个Kafka主题,其中填充了表示在不同聚合中发生的业务事件的事件(事件源应用程序)。这些事件允许构建具有以下属性的聚合:
现在,我想创建一个包含用户和产品名称(而不是ID)的所有赠款的流。我想这样做:
那么如何进行呢?
我想定义一些lambda表达式来表示类实例属性的更新。
我试着写如下:
Expression<Action<User>> update = user => user.Name = "Joe Foo";
Run Code Online (Sandbox Code Playgroud)
但是我有一个编译错误:
错误CS0832表达式树可能不包含赋值运算符。
如何用lambda表示此更新。
编辑
我的目标是使业务服务将更新发送到通用存储库。该存储库可以分析lambda的表达式以构建查询以发送到数据库引擎。
商业服务的示例可以是:
Expression<Action<User>> update = user => user.Name = "Joe Foo";
Run Code Online (Sandbox Code Playgroud)