2016-05-05 1 views
1

私のnodejs/mongo/mongooseアプリケーションでは、ユーザーは異なるコードに関連付けられています。これらは、ABC、XYZ、ACDなどの3文字コードです。各人は、そのような0〜最大20のコードを持つことができます。サンプルデータは次のようになります。mongodb/mongooseにキーコードを保存するには?

[ 
{name: John, codes: 'abc, bbb, dyd, zzz'}, 
{name: Sammy, codes: 'haz, rty, dyd'}, 
{name: Suzanne, codes: 'abc, ccc, mnm, zzz'} 
] 

人を検索すると、それらのコードが検索されます。 たとえば、コード 'abc'を持つすべての人を見つけてください(他のプロパティもあります)。

質問:最高のパフォーマンスを得るためにユーザーコードデータを保存する方法は?私の例のような単純な文字列の ? IDとインデックスの異なる行? と、特定のコードを持つ人を質問する方法は?

は多分、完全に30、 何百万人もの人々、そしてその多くはないコードがあることができ、それぞれの人は0〜10または20のコードを持っています。

答えて

0

コードを既に述べたようにリストに入れてください:["abc"、 "bbb"、 "dyd"、 "zzz"];追加される方法はたくさんあります。あなたはmongodbのサイトをチェックしてください。 db.collection.find({codes: "abc"})または
db.collection.find({$ and:{{codes: "abc"}、{codes: "bbb" }]})を使用して、同じ人物の複数のコードを検索します。例。

`

db.array.insert({_ ID:0、コード:[]})--- WriteResult({ "nInserted":1})--- db.array。db.array.update({_ id:0}、{$ push:{"codes": "aaa"}) ( "nMatched":1、 "nUpserted":0、 "nModified":1})--- db.array.find()--- {"_id":0} 、 "codes":["aaa"]} `

+0

がよく見えます。コードのデータ型は何ですか?アレイ?そのため、値を追加するだけでmyArray.push( 'abc')となります。 ? –

+0

はい、私の以前のコメントを参照してください私はそれを追加しました。 – AMITAVA

0

私はそれらを文字列に格納することは間違いを引き起こしてしまい、今後コードを変更することが困難になると思います。私の意見では、配列を使ってこれらのコードを格納し、各コードに1-30の識別子を付けるのが最良の方法です。次に、適切なコードの識別子をコード配列にプッシュできます。クエリについては、this questionをご覧ください。

関連する問題