私はmongodb
のインデックスについて少し不明です。MongoDB複数の単一インデックス
以下は、book
エントリのスキーマ(mongoose
)です。それはowner
とrequestee
です。
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const bookSchema = Schema({
owner : { type: Schema.Types.ObjectId, ref: 'User', index: true },
title : String,
author : String,
image : String,
added : Date,
requestee: { type: Schema.Types.ObjectId, ref: 'User', index: true },
}, {collection: 'books'})
module.exports = mongoose.model("Book", bookSchema);
私がしたいことは、両方の視点から照会できることです。本のowner
については
:
Book.find({owner: ObjectId(user._id)})
これは、誰もが要請者のための本
を要求しているなら、私に伝えることができるようになります。
Book.find({requestee: ObjectId(requestee._id)})
これは、依頼者が行った要求を私に伝えることができます。
上記のインデックスが正しいかどうかは不明です。複数の単一キーインデックスを持つことができますか、一致するものを探すすべてのドキュメントをスキャンしていますか?
シェルからクエリを実行すると動作するように見えますが、これが正しいかどうか再びわかりません。
ある[インデックス](https://docs.mongodb.com/manual/core/index-single/)と[インデックス戦略](HTTPSについてもう少し: //docs.mongodb.com/manual/applications/indexes/)。インデックスが利用されているかどうかを確認する方法を探している場合は、https://docs.mongodb.com/manual/tutorial/measure-index-use/ – Veeram
@Veeramの 'measure index use' doc 'explain(" executionStats ")で見ているものに基づいて私の仮定が正しいと思う。私はあなたが持っているものは完全に受け入れられる答えだと思います。あなたが答えとしてそれを入れたいなら、私はそれを受け入れるでしょう。 – Jeff