簡體   English   中英

NodeJS MongoDB question save() function 在集合中創建空文檔

[英]NodeJS MongoDB question save() function creating empty documents in collection

MongoDB 新手,了解一些基本節點。 遵循 Node、Express 和 MongoDB 的在線教程。 我有一些代碼連接到遠程集群並將文檔推送到集合中。 連接有效,但插入的文檔是空的,因為它只包含自動生成的 id。 這是代碼:

const DB = process.env.DATABASE.replace(
  '<PASSWORD>',
  process.env.DATABASE_PASSWORD
);
mongoose
  .connect(DB, {
    useNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then(() => console.log('DB Connection successful'));
 
const tourSchema = new mongoose.Schema();
({
  name: {
    type: String,
    required: [true, 'A tour must have a name'],
    unique: true,
  },
  rating: {
    type: Number,
    default: 4.5,
  },
  price: {
    type: Number,
    required: [true, 'A tour must have a price'],
  },
});
 
const Tour = mongoose.model('Tour', tourSchema);
 
const testTour = new Tour({
  name: 'aaaa',
  rating: 3.0,
  price: 397,
});
 
testTour
  .save()
  .then((doc) => {
    console.log(doc);
  })
  .catch((err) => console.log('ERROR:', err));

這是 output:

控制台輸出顯示創建的空文檔

如果我查看 Compass,我可以看到創建的空文檔,因此連接正常。 實際連接字符串是否有一些不同的查詢字符串參數? 以下是 MongoDB 連接字符串的當前查詢字符串參數(這些是默認值): retryWrites=true&w=majority

知道我在代碼中可能缺少什么嗎?

謝謝!

嘗試改變這個:

const tourSchema = new mongoose.Schema();
({

至:

const tourSchema = new mongoose.Schema({

在第 13 行,您沒有正確定義架構,並且其中沒有定義實體,因為您使用;關閉架構。 在定義之前。

const DB = process.env.DATABASE.replace(
  '<PASSWORD>',
  process.env.DATABASE_PASSWORD
);
mongoose
  .connect(DB, {
    useNewUrlParser: true,
    useCreateIndex: true,
    useFindAndModify: false,
  })
  .then(() => console.log('DB Connection successful'));

const tourSchema = new mongoose.Schema()
  ({
    name: {
      type: String,
      required: [true, 'A tour must have a name'],
      unique: true,
    },
    rating: {
      type: Number,
      default: 4.5,
    },
    price: {
      type: Number,
      required: [true, 'A tour must have a price'],
    },
  });

const Tour = mongoose.model('Tour', tourSchema);

const testTour = new Tour({
  name: 'aaaa',
  rating: 3.0,
  price: 397,
});

testTour.save()
  .then((doc) => {
    console.log(doc);
  })
  .catch((err) => console.log('ERROR:', err));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM