MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongoose - Не може да създаде повече от 4 полета с помощта на `findOrCreate`

Защо имате проблема:
Не използвате findOrCreate метод добре. findOrCreate може да приема до четири аргумента.
findOrCreate(conditions, doc, options, callback) :

  • conditions :Това се използва за указване на филтъра за избор за намиране на документа.
  • doc [по избор]:Ако документ, който съответства на филтъра за избор (conditions ) не е намерен, този doc се слива с това, което имате в conditions и след това се вмъква в DB.
  • options [по избор]:От кодовата база на плъгина реших, че можете да използвате options.upsert (ако е зададено на true ), за да актуализирате документа, ако той вече съществува.
  • callback :Функцията, изпълнявана след извършване на операцията.

Това, което правите погрешно, е passign { email: profile.emails[0].value } като трети аргумент, където options се очаква, трябва да го включите в doc т.е. вторият аргумент.

Поправката
Опитайте това:

passport.use(
  new GoogleStrategy(
    {
      clientID: process.env.CLIENT_ID,
      clientSecret: process.env.CLIENT_SECRET,
      callbackURL: "http://localhost:3000/auth/google/dashboard",
      profileFields: ["id", "displayName", "photos", "email"]
    },
    function(accessToken, refreshToken, profile, cb) {
      console.log(profile);
      console.log(profile.photos[0].value);
      User.findOrCreate(
        { googleId: profile.id },
        // Notice that this function parameter below 
        // includes both the profilePic and email
        { profilePic: profile.photos[0].value, email: profile.emails[0].value },
        function(err, user) {
          return cb(err, user);
        }
      );
    }
  )
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. вмъкнете в поддокумент с mongoDB

  2. Mongodb:Вземете документи, сортирани по динамично класиране

  3. Агрегатът Mongoose връща празен резултат

  4. как да замените множество срещания на фраза mongodb

  5. Защо MongoDB – 10 причини да научите MongoDB за 2022 г