我有一个MongoDB集合,其中的数据不是通过我的Derby应用程序保存的。我想对此进行查询,并将其放到我的Derby应用程序中。
所以,我想出了答案,下面是代码:
get '/:year', (page, model, params) ->
query = model.query 'years',
where:
year: (parseInt params.year, 10)
limit: 1
model.subscribe query, (err, year) ->
if err
console.log err
page.render
y: year.get(),
year: params.year唯一的问题是文档没有derby id,因此它将MongoDB objectid (_id)设置为derby id。下面是model.get()返回的JSON示例:https://gist.github.com/0a5426d2b28a940e8803
在查询之前,我无法知道对象是什么。我希望最近返回的id (currID)位于对象的顶层,这样我就可以查询并设置模型引用。我做了一个黑客来绕过它,但它并不像我希望的那样顺利。守则如下:
getId = (obj, year) ->
for x of obj
return obj[x].id if obj[x].year is year
-1另外,是否有任何方法可以更新模板而不破坏屏幕上的一些模板?而不是做一个完整的page.render,只做一个template.render
谢谢
发布于 2012-06-28 00:52:51
Racer查询在0.3.11中刚刚更新,并在这个自述文件中进行了描述:https://github.com/codeparty/racer/blob/master/lib/descriptor/query/README.md
发布于 2012-05-01 07:24:28
注意:这已经不再需要了。查询系统已经更新。请看内特的答案。。
我和DerbyJS的开发人员进行了交谈,他告诉我他们正在改进查询系统。这项工作仍在进行中。
现在,我已经构建了一个黑客,它将使用一个对象进行测试,并使用一个参数对象
getId = (obj, params) ->
ids = []
for x of obj
i = 0
for y of params
if obj[x][y] isnt params[y]
break
else if (++i is params.length)
ids.push
id: obj[x].id
return ids例如,您可以输入这样的对象:
var obj = {
"lskjfalksj23423": {
id: "lskjfalksj23423",
name: "random day",
year: 2012,
month: 12,
day: 1
},
"aklsdjflkasdfd": {
id: "aklsdjflkasdfd",
name: "random day 2",
year: 2012,
month: 8,
day: 1
}
}然后是一个要对其进行测试的对象(确保添加一个长度键)
var params = {
month: 12,
day: 1,
length: 2
}它将返回匹配it的数组:[{id: "lskjfalksj23423"}]
注意:我还没有测试过这个例子,所以如果你有问题,请告诉我。当查询系统进一步构建时,这应该在几个月内就过时了。
https://stackoverflow.com/questions/10379276
复制相似问题