gpt4 book ai didi

Node.js MongoDB 创建多个索引 : no index name specified

转载 作者:可可西里 更新时间:2023-11-01 10:22:56 26 4
gpt4 key购买 nike

我正在使用 MongoDB 版本 2.6.11

如何解决这个错误?在Node.js API reference您可以传递的唯一参数是一个索引规范数组和一个回调函数,我应该在哪里指定索引名称?我正在使用的代码如下(假设我已经需要 mongoclient 并已连接到数据库):

db.collection("MyCollection").createIndexes(
[
{field1: 1},
{field2: 1, field3: 1}
],
function(err, result){
//Error handling code
}
);

错误代码为 67,错误的完整堆栈跟踪如下:

MongoError: no index name specified
at Function.MongoError.create (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)
at commandCallback (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:1154:66)
at Callbacks.emit (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:119:3)
at messageHandler (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/topologies/server.js:295:23)
at Socket.dataHandler (/home/ubuntu/workspace/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:285:22)
at emitOne (events.js:77:13)
at Socket.emit (events.js:169:7)
at readableAddChunk (_stream_readable.js:146:16)
at Socket.Readable.push (_stream_readable.js:110:10)
at TCP.onread (net.js:529:20)

我一连接到数据库就运行这个命令。如果数据库是新的,那么该集合将不存在,任何具有要索引的指定字段的文档也不存在,这可能是问题所在吗?

最佳答案

您需要按照描述指定索引 here .

因此您的调用应该如下所示,而不是为每个索引提供唯一名称:

db.collection("MyCollection").createIndexes(
[
{name: 'field1', key: {field1: 1}},
{name: 'field2_field3', key: {field2: 1, field3: 1}}
],
function(err, result){
//Error handling code
}
);

关于Node.js MongoDB 创建多个索引 : no index name specified,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37100984/

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