第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 MongoDB 需要 `unique:true` 來創(chuàng)建集合?

為什么 MongoDB 需要 `unique:true` 來創(chuàng)建集合?

慕哥6287543 2022-06-09 11:12:43
我正在使用 Express 和 MongoDB 開發(fā) NodeJS 應(yīng)用程序。我的對象沒有保存到數(shù)據(jù)庫中,所以我深入挖掘,發(fā)現(xiàn)如果我使用以下方法,則沒有創(chuàng)建目標(biāo)集合:const PersonSchema = new Schema({  firstName: String,});如果我使用了該集合,則創(chuàng)建該集合const PersonSchema = new Schema({  firstName: { type: String, unique: true},});在任何一種情況下,完整的模型server/models/person.js都是:'use strict';const mongoose = require('mongoose');const Schema = mongoose.Schema;// Use native promises.mongoose.Promise = global.Promise;// Define the Person schema.const PersonSchema = new Schema({  // ...});const Person = mongoose.model('Person', PersonSchema);module.exports = Person;我有 MongoDB 4.2.3(db.version()在 mongo shell 中)、npm 6.14.4、mongoose 5.7.5 和 npm mongodb 3.3.2(在 mongo shell 中npm list | grep mongodb)。為什么MongoDB除了_id創(chuàng)建集合之外還需要一個唯一的字段?
查看完整描述

1 回答

?
慕桂英4014372

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊

我剛剛嘗試使用幾乎相同版本的 mongoose 和 MongoDB 復(fù)制您在上面描述的場景,它工作正常,創(chuàng)建(和保存)文檔而沒有firstName架構(gòu)中字段的唯一屬性。我認(rèn)為您的對象未保存在數(shù)據(jù)庫中的原因不是因為缺少唯一屬性。

此外,在沒有唯一屬性的情況下無法創(chuàng)建集合的原因是 mongoose(或 MongoDB 本身)在您將數(shù)據(jù)插入集合之前不會創(chuàng)建集合。通過添加唯一屬性,MongoDB 將不得不為集合中的該屬性創(chuàng)建一個索引文檔,從而將數(shù)據(jù)添加到集合中,這就是為什么看起來只有在添加唯一屬性之后才創(chuàng)建集合的原因。因此,雖然db.<collectionName>.find({}) 可能什么都不返回,db.<collectionName>.getIndexes()但會給你一些東西。


查看完整回答
反對 回復(fù) 2022-06-09
  • 1 回答
  • 0 關(guān)注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號