在couchbase中,当你使用ottoman.js时,你必须手动创建一个集合和一个索引,然后才能开始查询你创建的新模型的数据库。有没有一种方法可以自动做到这一点?
为了进一步解释,这里是我在nodejs代码中创建的一个基本模型。
const { Schema, model } = require("ottoman");
const UserSchema = new Schema({
username: {
type: String,
required: true,
unique: true
}
},
{
timestamps: true
}
);
const User = model('User', UserSchema);
module.exports = User;
字符串
现在,当我们尝试插入时,我们会得到集合不存在的错误。如果我们在 Jmeter 板中手动创建集合,我们可以像这样开始插入:
const newUser = new User({ username:'HelloWorld' });
let result = await newUser.save();
型
为了查询数据,我们需要创建一个索引。让我们假设我们只需要所有集合的自适应索引。当我们尝试查询时,我们得到一个索引错误。所以我们需要手动运行一个查询来创建一个自适应索引,然后我们可以这样做一个基本的查找:
let users = await User.find({},{});
型
所以我的问题是,有没有一种方法可以让你在模式定义中指定ottoman应该自动为你创建集合,并进一步指定它应该创建什么样的索引?
我一直在mongodb中使用mongoose,发现这一点非常相似。另一方面,mongo会自动创建集合,一旦定义了mongoose模式,就可以开始查询。
1条答案
按热度按时间aelbi1ox1#
使用Provisioning API创建存储桶、作用域、集合、索引等。API是异步的-它们在创建完成之前返回。如果您希望在创建后立即使用它们,则可能需要在使用它们之前进行测试/等待循环。
https://docs.couchbase.com/nodejs-sdk/current/howtos/provisioning-cluster-resources.html