它还有一个包含多个索引的Accounts数组。可以查询一个文档,其中Accounts包含完全某个值子集,所有某个值子集,或任何某个值子集。这意味着你可以搜索Accounts = ["379-1111", "379-2574"]而找不到上面的;你可以搜索Accounts includes ["379-1111"]并找到上面的文档;你可以搜索Accounts includes any of ["974-3785","414-6731"],找到上面和任何包含帐户“974-3785”的文档(如果有的话)。
最明显的无效情况是写时更新:如果你读取user:Simon:lingots = NOTFOUND,你可能会SELECT Lingots FROM Store s INNER JOIN UserProfile u ON s.UserID = u.UserID WHERE u.Username = Simon并将结果100存储为SET user:Simon:lingots = 100。然后当你奖励西蒙5个灵格时,你会读到user:Simon:lingots = 100, SET user:Simon:lingots = 105和UPDATE Store s INNER JOIN UserProfile u ON s.UserID = u.UserID SET s.Lingots = 105 WHERE u.Username = Simon。现在你的数据库和Redis中有105,并且不需要查询数据库就可以得到user:Simon:lingots。