0

レポート/分析に MongoDB を使い始めています。現在、SQL Server を使用してすべての情報を格納するシステムを使用しています。問題は、ユーザーが編集可能な情報を MongoDB データベースに保存する必要があるかどうかわからないことです。

たとえば、次のような情報を保存できます。

[
    { user: {id: 123, name:"John Smith"}, login_count: 5}
    { user: {id: 564, name:"Mike Doe"}, login_count: 3}
    { user: {id: 678, name:"Mary Torres"}, login_count: 1}
]

そのため、レポートを実行して「ログイン回数が最も多いユーザー」を一覧表示する場合は、そこに名前があるので簡単です。ただし、ユーザー名が変更された場合は、NoSQL データベース内のすべての非正規化データを更新する必要があります。代わりに ID のみを保存すると、ユーザー名の更新に問題はありませんが、レポートを表示したい場合は、SQL Server データベースにもクエリを実行する必要があります。

これをどのように処理しますか?

4

2 に答える 2

0

DBRefまたは手動参照を使用できます。

最初にユーザー情報を保存する必要があります。

db.user.insert({id: 123, name:"John", "lastName":"Smith"})
db.user.insert({id: 564, name:"Mike", "lastName":"Doe"})
db.user.insert({id: 678, name:"Mary", "lastName":"Torres"})

コレクションログインでは、ユーザーコレクションからのIDのみが必要です

[
    { user: 123, login_count: 5},
    { user: 564, login_count: 3},
    { user: 678, login_count: 1}
]

ただし、ユーザー名が必要です

flag=db.svlogin.find({"field.login_count":5})
user=db.user.find({"_id":flag[0]['user']})
print user[0]
...
{id: 123, name:"John", "lastName":"Smith"}

この例では Python を使用しています....MongoDB は RDBMS データベースではないことを思い出してください...

于 2013-08-28T16:32:59.010 に答える