如果分配了Azure CosmosDB(Mongo / Mongoose)deleteMany()失败

时间:2019-12-05 15:41:13

标签: mongodb mongoose azure-cosmosdb

我正在尝试执行deleteMany({})来删除集合中的所有文档。如果我在集合上没有分区键,则可以使用。如果我有钥匙(在/ city的情况下),则会收到错误消息。

query in command must target a single shard key"
code:61

如何清除整个集合,很难指定用户居住的每个城市!而且,当我使用门户网站(或仿真器)创建集合时,Cosmos要求提供分区键)。当没有先前的集合时,只能通过执行mongoose insertMany()来获得分区键。

代码段:(错误来自deleteMany({})

const personSchema = new mongoose.Schema({
    firstName: String,
    lastName: String,
    addressNumber: Number,
    streetName: String,
    city: String,
    email: String
})

        this.users = mongoose.model('person', personSchema)

        try {
            await this.users.deleteMany({})
        } catch (err) {
            this.log.error(`cannot empty collection: ${err}`)
        }

0 个答案:

没有答案