小编Oos*_*Oos的帖子

这是否可以使用mongoengine(python)懒惰地查询数据库?

我有mongoengine的内存问题(在python中).

假设我有大量的custom_documents(数千).我想要处理它们,如下所示:

for item in custom_documents.objects():
    process(item)
Run Code Online (Sandbox Code Playgroud)

问题是custom_documents.objects()加载内存中的每个对象,我的应用程序使用几GB ...

我怎样才能让它更具记忆性呢?有没有办法让mongoengine懒惰地查询数据库(它在迭代查询集时请求对象)?

python lazy-evaluation mongodb mongoengine

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

使用两个同名的类

我有两个PHP应用程序,它们具有相同名称的twho类. - 带有"Project"类的app1 - 带有"Project"类的app2

我必须在第二个应用程序中使用第一个应用程序的类,但是两个带有一个名称的类会导致错误("PHP致命错误:无法重新声明类Project ...").

我不能改变类名.我必须使用PHP 5.2(PHP 5.2中没有命名空间).

有解决方案吗?

也许 :

  • 使用类Project
  • undef这个类(有点"unset Project",有可能用PHP?)
  • include()第二课
  • 使用第二课

我不知道PHP是否可行(没有找到任何关于此的资源),我不知道更好的方法来管理这个......

php conflict namespaces class

3
推荐指数
1
解决办法
4575
查看次数

使用clojure中的给定步骤迭代列表

我正在尝试使用 clojure 中的给定步骤迭代列表。

在 python 中,我会执行以下操作:

xs = list(range(10))

xs[::2]
# out: [0, 2, 4, 6, 8]

xs[1::2]
# out: [1, 3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)

我想不出一个感觉惯用的 clojure 解决方案。

这是我能想到的最好的:

(defn iterate-step-2 [xs]
  (map first (take-while some? (iterate nnext xs))))

(iterate-step-2 (range 10))
; out: (0 2 4 6 8)

(iterate-step-2 (rest (range 10)))
; out: (1 3 5 7 9)
Run Code Online (Sandbox Code Playgroud)

但它不像 python 解决方案那样通用(步骤不可配置)和灵活。此外,它似乎过于复杂。

有一个更好的方法吗 ?

clojure

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

有没有办法使用flask-migrate/alembic列出已应用于数据库的迁移?

我想列出所有迁移和数据库状态(是否已应用迁移)。

我正在寻找与 Rails 相当的东西rake db:migrate:status

示例输出rake db:migrate:status

database: dev

 Status   Migration ID    Migration Name
--------------------------------------------------
   up     20180108162849  Add user table
   up     20180110135954  Add article table
  down    20180130152036  Add index to user
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask alembic flask-migrate

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