小编Tac*_*aza的帖子

Mongodb:从每个组中选择前N行

我在我的博客平台上使用mongodb,用户可以在其中创建自己的博客.所有博客的所有条目都在条目集合中.条目的文档如下所示:

{
  'blog_id':xxx,
  'timestamp':xxx,
  'title':xxx,
  'content':xxx
}
Run Code Online (Sandbox Code Playgroud)

正如问题所说,有没有办法为每个博客选择最后3个条目?

mongodb

12
推荐指数
2
解决办法
7378
查看次数

Bloodhound识别bug?

我正在使用最新版本的typeahead.js(v0.11.1).当对数据集值使用不同的id时,我观察到了奇怪的行为.

我创建了一个JSFiddle.这是js代码:

var ds = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    local: [{id: 1, name: "a b 1"}, {id: 2, name: "a b 2"}, {id: 3, name: "a"}],
    identify: function(obj) { return obj.id; }
});

$('#go').typeahead(null, {
    name: 'ds',
    display: 'name',
    source: ds
});
Run Code Online (Sandbox Code Playgroud)

如果我更改"本地"的数据,现在预先输入可能会出现故障.这里只是一些例子:

将这些值中的一个用于'local'(注意第三个元素是以'1'开头的随机数):

[{id:1,name:"ab 1"},{id:2,name:"ab 2"},{id:15,name:"a"}]

[{id:1,name:"ab 1"},{id:2,name:"ab 2"},{id:1849,name:"a"}]

现在,当我进入文本框:"a b"时,预计输入"ab 1"和"ab 2",但事实上它只表示"ab 1".

这可以通过以下方法之一解决:

  • 将第三个元素的'id'属性更改为不以'1'开头的值.例:

    [{id:1,name:"ab 1"},{id:2,name:"ab 2"},{id:23,name:"a"}]

  • 将第三个元素的"name"属性更改为不以"a"开头的值.例:

    [{id:1,name:"ab 1"},{id:2,name:"ab 2"},{id:15,name:"s"}]

  • 删除Bloodhound构造函数对象的'identify'属性.

更重要的是,如果我使用大于2的数字作为第一个元素的id,就像这样:

[{id:3,name:"ab 1"},{id:2,name:"ab 2"},{id:15,name:"a"}]

现在当我在文本框中输入"a b"时,没有任何建议!

typeahead.js twitter-typeahead

4
推荐指数
1
解决办法
1420
查看次数

向实体注入参数

我多次遇到这个问题,但直到现在我才想学习最好的方法。

假设我有一个 Image 实体,它有一个 'path' 属性,它存储图像文件的相对路径。例如,图像的“路径”为“20141129/123456789.jpg”。

在 parameters.yml 中,我设置了存储图像文件的目录的绝对路径。像这样:

image_dir: %user_static%/images/galery/
Run Code Online (Sandbox Code Playgroud)

我想将方法​​ 'getFullPath()' 添加到 Image 实体,其中 'image_dir' 参数将与 'path' 属性连接。我不想在控制器中进行连接,因为我会经常使用它。此外,我不想将图像目录插入到图像的“路径”属性中,因为稍后我可能会更改图像目录路径(这意味着我必须更新数据库中所有图像的“路径”)。

那么如何将参数注入到 Image 实体中,以便 getFullPath() 可以使用它呢?由于 Image 实体将由存储库方法获取而不是创建 Image 的新实例,因此将变量传递给构造方法将不起作用。

或者有更优雅的方法吗?我只希望图像实体具有 getFullPath() 方法,并且我将通过存储库方法(find、findBy...)和查询构建器获取图像。

symfony doctrine-orm

2
推荐指数
1
解决办法
1271
查看次数