在我的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个代码。
答案 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" ]}`