3

IPアドレスに基づいて「結合」したいこれら2つの単純化されたスキーマがあります。

var personSchema = Schema({
  name: String,
  ip: String
});

var logSchema = Schema({
  message: String,
  ip: String
});

person._id が IP アドレスであれば機能します。しかし、それは私にとって選択肢ではありません。

現在、新しいログが保存されるときに、その人を検索してログへの参照を追加する方法で問題を解決しました。スキーマは次のようになります。

var logSchema = Schema({
  message: String,
  ip: String,
  person: { type: Schema.Types.ObjectId, ref: 'Person' }
});

Mongoose Populateのドキュメント、Document#populatedおよびModel.populate()を読みました。それが可能かどうかはまだわかりません。この例は非常に単純化されています。ログ収集で mapReduce とグループ化を使用しているため、人口は私にとって素晴らしいものです。

データベース参照も読んだことがありますが、唯一のオプションは_idに基づいて入力することだと思います。しかし、それは純粋なmongodbであり、おそらくマングースを使用した別の可能性がありますか?

_id フィールドに基づいていないクエリを入力することは可能ですか?

4

2 に答える 2

1

MongoDB は結合をサポートしていません。したがって.populate、別のクエリを作成するだけなので、別のクエリを手動で作成するのが最善の解決策です。

于 2013-04-02T13:58:27.870 に答える