sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur skulle jag returnera beställningen av MongoDB-inlägg efter tid Favoritmarkerad av användare?

Istället för att bara spela in vilka inlägg en användare gillar med:

Meteor.users.update({ _id: this.userId },{ $addToSet: { liked: postId }});

Skjut ett objekt som innehåller både postId och aktuellt datum

Meteor.users.update({ _id: this.userId },
  { $push: { liked: { postId: postId, likedAt: new Date() }});

Det löser din "var ska du lagra"-frågan men det komplicerar ditt liv på andra sätt eftersom din sökning/sorteringsfråga kommer att bli mer komplicerad. Du måste också förhindra duperingar med kod eftersom $addToSet gör det åt dig automatiskt $push inte.




  1. Meteor, One to Many Relationship &lägga till fält endast i klientsidans samling i Publicera?

  2. Mongoose:Läs på ReplicaSet

  3. Migrera socket.io från 0.9.x till 1.x, problem med att konfigurera RedisStore

  4. skiftlägesokänslig hitta i mongodb för användarnamn i php