2017-02-10 4 views
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)})

Это будет в состоянии сказать мне, если кто-то просит книгу

Для REQUESTEE:

Book.find({requestee: ObjectId(requestee._id)})

Это позволит мне рассказать о запросах, которые сделал запрос.

Непонятно, если то, что у меня выше, является правильным с точки зрения индексов. Могу ли я иметь несколько индексов с одним ключом, или это то, что я делаю, сканируя каждый документ в поисках соответствия?

Выполнение запросов из оболочки, похоже, работает, но опять же не знаю, правильно ли это.

+0

Вот немного больше о [индексы] (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

+0

@Veeram спасибо за использование документа «measure index», I подумайте, что мое предположение верно, основываясь на том, что я вижу в 'explain (" executionStats ")'. Я думаю, что у вас есть вполне приемлемый ответ. Если вы хотите выразить это как ответ, я приму это. – Jeff

ответ

2

Вы можете запустить explain по запросу, чтобы просмотреть использование индекса. Взгляните на составной индекс, если это лучше для вашего случая использования.

Более подробная информация здесь - https://docs.mongodb.com/manual/tutorial/measure-index-use/