1

Derby と Mongo で 2 つの問題が発生しています。私は MySQL と Redis のバックグラウンドを持っているので、何か間違ったことをしているのかもしれません。

1) タイプが ObjectId の Id を検索できないようです。

model.query("users").byKey(params.userId);

_id が文字列であるレコードのみに一致します。データが「更新」された場合を除いて、これで問題ないと思います Racer は ObjectId _id を持つ新しいレコードを作成します! したがって、基本的に、Racer で挿入した ID でドキュメントを取得することはできません!

2) クエリを実行するたびに、次のようなオブジェクトのオブジェクトが返されます。

{ '$spec': true, 
    '4fcd4c8e6c8c89d97ed90f4a': { "username": ... },
    '4fcd4c8e6c8c89d97ed90f4b': { "username": ... },

つまり、それをオブジェクトのリストに変換する必要があります。_id のリストを作成し、それをモデル変数に割り当てて refList で使用する関数を作成しました。ハックのように感じます。これは正しい方法ではありません。

4

2 に答える 2

2

クエリは、バージョン 0.3.11 で大幅に更新されました。モデルに組み込みの model.filter() および model.sort() メソッドが追加されました。これにより、キーのリストを手動で作成し、より効率的な配列更新イベントを Derby に発行する必要がなくなります。

クエリの READMEを参照してください。

于 2012-06-28T00:57:34.380 に答える
0

私はderbyjsのユーザーではありませんが、あなたの問題に関するいくつかの提案があります:

1)「Id is ObjectId」について?

id はオブジェクトでなければならないようです。DerbyDoc/Persistanceを参照してください。

レーサー パスは、次の自然なマッピングを使用してデータベース コレクションとドキュメントに変換されます: collection.documentId.document

...

// ルート パスの最初と 2 番目のセグメントはオブジェクトでなければなりません

どのようにデータを保存していますか? 一般的なアドバイスとして、完全に再現可能なコードを使用すると、得られるヘルプが改善されます。

2) 「クエリ結果をリストに変換する必要があります」?

他のエンジンでの私の経験から、正しいアプローチを使用していないようです。すべては結果に対して何をしたいかによって異なりますが、非常に一般的なアプローチの 1 つは、オブジェクト リストを操作し、最後にテンプレート ループで属性を取得することです。あなたの場合、クエリ結果を page.render 呼び出しに直接渡すことを意味します。DerbyDoc/セクションを参照してください

お役に立てれば

アレクシス

于 2012-06-05T09:29:26.190 に答える