MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Mongoose — nie można utworzyć więcej niż 4 pól za pomocą funkcji „findOrCreate”

Dlaczego masz problem:
Nie używasz findOrCreate metoda dobrze. findOrCreate może przyjąć do czterech argumentów.
findOrCreate(conditions, doc, options, callback) :

  • conditions :Jest używany do określenia filtra wyboru w celu znalezienia dokumentu.
  • doc [opcjonalne]:Jeśli dokument, który pasuje do filtra wyboru(conditions ) nie został znaleziony, ten doc jest połączony z tym, co masz w conditions a następnie włożony do DB.
  • options [opcjonalne]:Z bazy kodu wtyczek doszedłem do wniosku, że możesz użyćoptions.upsert (jeśli ustawione na true ), aby zaktualizować dokument, jeśli już istnieje.
  • callback :Funkcja wykonywana po wykonaniu operacji.

To, co robisz źle, to passign { email: profile.emails[0].value } jako trzeci argument, gdzie options jest oczekiwany, powinieneś dołączyć go do doc czyli drugi argument.

Poprawka
Spróbuj tego:

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. base64 do przewodnika do base64

  2. Przechowywanie strumienia danych z żądania POST w GridFS, express, mongoDB, node.js

  3. jak stworzyć obiekt mongoDB w java

  4. Problemy z konfiguracją użytkowników i połączeniem z Mongo za pomocą PHP

  5. dodaj warunek do wyników najnowszych wartości