我开发了一个简单的API,允许您在MongoDB Collection中构建一系列搜索条件.我现在需要能够将此数组转换为实际的Mongo查询,而这部分是我遇到极大困难的地方.
理想情况下,我遵循一些语法,允许我执行以下伪代码:
var query = new QueryBuilder();
foreach (var group in groups)
{
switch (group.Condition)
{
case GroupCondition.Or:
query.Or(group.Queries);
break;
case GroupCondition.And:
query.And(group.Queries);
break;
}
}
return myCollection.FindAs(type, query);
Run Code Online (Sandbox Code Playgroud)
我实际上想要构建稍微复杂的查询,但最终我追求的功能是使用上面的伪代码中的对象动态构建我的查询.
如果我没有清楚地了解我想要实现的目标,请随时向我询问其他详细信息.
我正在使用我的GraphQL实例的接口,但这个问题也许适用于工会.实现接口的所有类型都有2个公共字段,但每种类型上都有多个附加字段.
给出以下架构
interface FoodType {
id: String
type: String
}
type Pizza implements FoodType {
id: String
type: String
pizzaType: String
toppings: [String]
size: String
}
type Salad implements FoodType {
id: String
type: String
vegetarian: Boolean
dressing: Boolean
}
type BasicFood implements FoodType {
id: String
type: String
}
Run Code Online (Sandbox Code Playgroud)
以及解决方案
{
Query: {
GetAllFood(root) {
return fetchFromAllFoodsEndpoint()
.then((items) => {
return mergeExtraFieldsByType(items);
});
},
},
FoodType: {
__resolveType(food) {
switch (food.type) {
case 'pizza': return 'Pizza';
case 'salad': return …Run Code Online (Sandbox Code Playgroud) 所以我正在处理我自己的自定义路由映射(而不是让 ServiceStack 自动处理它),只是因为我的所有数据、页面内容等都存储在数据库内。我有一系列 _Layout.cshtml 文件,我的 Markdown 存储为字符串。
所以我想我在问,我需要为映射的路线继承什么类型的服务(常规服务?),以及我需要返回什么状态“在字符串 Y 中使用布局 X 和 Markdown”?
我已经阅读了 ServiceStack Wiki 和新示例页面上的示例,但无法找到任何实现此目的的示例(一切似乎都是从文件中读取 Markdown,而 Razor 从数据库中读取变量)。
如果我的问题不清楚,请告诉我,我很乐意进行相应修改。
--
一些澄清:
是的,我可以加载常规 Razor 页面。是的,我从要加载的文件中获取了常规 Markdown。
我现在只是好奇如何将 Markdown 渲染到 Razor 方法“RenderBody()”中,该方法位于字符串中(来自我的数据库)。
我正在尝试将一个属性与KnockoutJS数据绑定到一个函数,所以我可以做一些字符串操作,并努力让它工作.
以下工作完全正常:
<div data-bind="html: doSomething($data)></div>
Run Code Online (Sandbox Code Playgroud)
但是,以下内容不是:
<a data-bind="attr: { src: doSomething($data)}">link</a>
Run Code Online (Sandbox Code Playgroud)
有人可以帮我搞定吗?
apollostack ×1
c# ×1
graphql ×1
knockout.js ×1
markdown ×1
mongodb ×1
node.js ×1
servicestack ×1