0
我對mongodb
的索引有點不清楚。MongoDB多個單一索引
下面我有一個架構(在mongoose
)爲book
條目。它有一個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)})
這將能夠告訴我被請求者提出的請求。
我不清楚我上面的指標是否正確。我可以擁有多個單鍵索引,還是我正在掃描每個要查找匹配的文檔?
從shell運行查詢似乎工作,但再次不知道這是否正確。
這是多一點有關[索引](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,I根據我在'explain(「executionStats」)'中看到的內容認爲我的假設是正確的。我認爲你所擁有的是一個完全可以接受的答案。如果你想把它作爲答案,我會接受它。 – Jeff