Как выполнить скрипт в Mon goose под управлением Mongodb? - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь запустить следующее как скрипт через консоль узла или только из командной строки. Но, похоже, не работает, что мне не хватает?

const mongoose = require("mongoose");
const ENV = require('dotenv').parse(envStr)


mongoose.connect(
  ENV.MONGO_URL,

  function(err) {
    if (err) throw err;
    console.log('connected');
  },
)

const UserSchema = ({
  name: String,
  messages: [Messages], // this part is working when I run tests...
  ...
})
UserSchema.methods.sendGreetings = function() {
  this.messages.push(
    new Message({
      msg: 'Hello!'
    })
  )
}
const User = new mongoose.Model('User', UserSchema)


const all = User.find({});
debugger // not working
all.map(user => {
  debugger; // not working
  user.sendGreetings()
});

1 Ответ

2 голосов
/ 26 января 2020

Вы должны обновить свой код, потому что его запрос на обещание!

const mongoose = require('mongoose');
const ENV = require('dotenv').parse(envStr)

run().catch(error => console.log(error.stack));

async function run() {
  await mongoose.connect(ENV.MONGO_URL, { useNewUrlParser: true });

  // Clear the database every time. This is for the sake of example only,
  // don't do this in prod :)
  await mongoose.connection.dropDatabase();

  const customerSchema = new mongoose.Schema({ name: String, messages: [Messages], ... });
  const User = mongoose.model('User', UserSchema);

  //await User.create({ name: 'A', messages: [30, 10] });
  //await User.create({ name: 'B', messages: [28, 10] });
  // add your data in your Schema

  // Find all User
  const docs = await User.find();
  console.log(docs);
  docs.map(license => {
     license.sendGreetings()
  });
}

для получения дополнительной информации о find() в mongooes прочитайте эту ссылку и создайте скрипт

...