如何在mongodb / mongoose中存储密钥代码?

时间:2016-05-05 18:27:02

标签: node.js mongodb mongoose

在我的nodejs / mongo / mongoose应用程序中,用户与不同的代码相关联。这些是3个字母代码,如ABC,XYZ,ACD等。每个人可以有0到20个代码。样本数据如下所示:

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

当我搜索人时,我会搜索这些代码。 例如:找到所有代码为'abc'的人(并有其他属性)。

问题:如何存储用户代码数据以获得最佳性能? 在一个像我的例子中的简单字符串? id和索引的不同行? 以及如何在mongoose中查询具有特定代码的人?

可能有数百万人,而不是那么多代码,总共可能有30个, 每个人将有0到10或20个代码。

2 个答案:

答案 0 :(得分:0)

我认为将它们存储在一个字符串中会让你犯错误,并且很难在将来更改代码。在我看来,你最好使用数组来存储这些代码,并为每个代码提供1-30标识符。然后,您可以将适当代码的标识符推送到其代码数组中。至于查询,请查看this question

答案 1 :(得分:0)

将代码放入列表中,如下所示:[" abc"," bbb"," dyd"," zzz&#34 ];有很多方法可以补充。你请检查mongodb网站。你总是可以简单地检索  db.collection.find({codes:" abc"})或由 db.collection.find({$ and:[{codes:" abc"},{codes:" bbb"}]})用于多个代码搜索同一个人。一个前。

`

  

db.array.insert({_ ID:0,代码:[]})---   WriteResult({" nInserted":1})---   db.array.find()---   {" _id" :0,"代码" :[]} ---   db.array.update({_ id:0},{$ push:{" codes":" aaa"}}); ---   WriteResult({" nMatched":1," nUpserted":0," nModified":1})---   db.array.find()---   {" _id" :0,"代码" :[" aaa" ]}`