gpt4 book ai didi

node.js - Mongoose 不创建索引

转载 作者:行者123 更新时间:2023-12-05 05:02:09 25 4
gpt4 key购买 nike

我在 node/express/mongoose 项目中有两个模式——用户和对话。我在每个模式上添加了索引。检查我的(免费)Mongo Atlas Cluster 中的索引时,我可以看到 Conversation 的索引已创建。但是,用户不会创建所需的索引。

这是我的用户架构:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const userSchema = new Schema(
{
username: { type: String, required: true, unique: true },
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
age: { type: String},
location: {
type: { type: String, enum: ["Point"], default: "Point" },
coordinates: { type: [Number], default: [0, 0] },
},
},
{ timestamps: true }
);


userSchema.index({ age: 1, location: "2dsphere", username: 1 });

module.exports = mongoose.model("User", userSchema);

在 Mongo Atlas 中,用户集合有两个索引:id(当然)和 email。我从来没有要求索引电子邮件。 agelocationusername 未编入索引。如何解决这个问题?

最佳答案

由于 mongoose 文档 ( https://mongoosejs.com/docs/guide.html#indexes ),您可以在路径级别的模式中进行字段级索引。例如,如果您需要索引年龄,您可以在您的架构中执行以下操作:

age: { type: String, index: true},

您正在尝试在您的代码中创建一个由 2dsphere 索引组成的复合索引。我猜这不是你想要的。

关于node.js - Mongoose 不创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62370630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com