MongoDBからLithiumのDocumentSetを取得していますが、ドキュメントを一度に処理したくありません。私はすでに、このようにそれを実行しようとしましたが、それはうまくいきませんでしたPHP Lithium:既存のDocumentSetをフィルタリングして最初に一致させる
$manyDocuments->giveMeTheOneWhere(array('foo' => 'bar'));
:
$manyDocuments->find(function($singleDocument){
return ($singleDocument->foo == 'bar');
});
場合でも、代わりに私は、私はちょうどこのような何かを伝えることができた、フィルターを持っていると思います私はクロージャ内で手動でtrueを返し、常に空のDocumentSetを返します。
明快さを追加する:データベース操作を探しているのではなく、すでに存在するDocumentSetから1つを取得したいと考えています。これを実現するファンシーな方法はありますか?またはカスタム関数を使用してセットを反復処理する必要はありますか?
'function($ singleDocument)use($ variableToCompare){'を使って明示的にアナウンスしない限り、変数がクロージャの中で見えないことを私は思い出していたでしょう。 – YMMD
@YMMDそう、私はfindメソッドを使用しようとしたときにこの問題を抱えていました。問題をどのようにトラブルシューティングしていますか?閉鎖の中にブレークポイントを入れて、あなたのfooフィールドを調べてみましたか?データに誤植があり、文字列が完全に一致しない前に問題が発生しました。 –