Я немного неясен об индексировании в 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)})
Это позволит мне рассказать о запросах, которые сделал запрос.
Непонятно, если то, что у меня выше, является правильным с точки зрения индексов. Могу ли я иметь несколько индексов с одним ключом, или это то, что я делаю, сканируя каждый документ в поисках соответствия?
Выполнение запросов из оболочки, похоже, работает, но опять же не знаю, правильно ли это.
Вот немного больше о [индексы] (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», I подумайте, что мое предположение верно, основываясь на том, что я вижу в 'explain (" executionStats ")'. Я думаю, что у вас есть вполне приемлемый ответ. Если вы хотите выразить это как ответ, я приму это. – Jeff