2016-11-03 4 views
-3

Ich habe zwei Sammlungen „Person“ und „Geschichten“. Stories Model hat ein Feld namens restricted. Ich muss ObjectId von Stories speichern, die nicht im Personenschema eingeschränkt sind. Im Allgemeinen, um die verfügbare Geschichte für diese Person anzuzeigen.Mongoose Speicher Refs von ObjectId einer anderen Sammlung.

person.model.js

var mongoose = require('mongoose'), Schema = mongoose.Schema; 
var personSchema = Schema({ 
    name : String, 
    stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }] 
}); 
var Person = mongoose.model('Person', personSchema); 

story.model.js

var mongoose = require('mongoose'), Schema = mongoose.Schema; var 
storySchema = Schema({ 
creator : String, 
title : String, 
restrictions : Boolean 
}); 
var Story = mongoose.model('Story', storySchema); 

Ich bin komplett neu in Mittelwert. Bitte helfen Sie mir zu finden, was in person.controller.js schreiben

+1

"Help me" wird in der Regel nicht bekommen Sie jede hier beantwortet. Stellen Sie spezifische Fragen, bei denen Sie Probleme haben und zeigen Sie erste Bemühungen. – qqilihq

+0

müssen die Objekt-ID von Geschichten in Person Modell speichern. Abgesehen von der Hilfe, die ich dachte, war meine Frage klar –

+1

Bitte sehen Sie [fragen] und [mcve]. – Mat

Antwort

1

Sie zunächst eine Liste der verschiedenen IDs für Geschichten bekommen könnte, die nicht beschränkt sind, tun Sie dies den distinct() Befehl.

Wenn Sie die Liste der IDs erhalten, dann können Sie mit dieser Liste die Person Modell Geschichten Feld aktualisieren mit findByIdAndUpdate() oder findOneAndUpdate() oder update().

folgt ein Beispiel:

Story.distinct("_id", { "restrictions": false }).exec(function(err, stories) { 
    if (err) throw err; 
    Person.findByIdAndUpdate(personId, 
     { "$addToSet": { "stories": { "$each": stories } } }, 
     { "new": true }, 
     function(err, person) { 
      if (err) throw err; 
      console.log(JSON.stringify(person.stories, null, 4)); 
     } 
    ) 
}) 
+0

Verweist auf eine schlechte Art, Daten in Mongo zu speichern? –

+0

Das hängt von Ihrem Anwendungsdesign ab und ist eher ein weites Thema. Weitere Einzelheiten zur Datenmodellierung in MongoDB finden Sie in der Dokumentation [Einführung in die Datenmodellierung] (http://docs.mongodb.org/manual/core/data-modeling-introduction/), insbesondere in [Model One-to-Many Relationships mit Embedded Documents] (http://docs.mongodb.org/manual/tutorial/model-embedded-one-to-many-relationships-between-documents/). Abgesehen davon, hat die obige Antwort Ihr Problem gelöst? – chridam

+0

Ja, die obige Antwort hat mein Problem gelöst. Vielen Dank –

Verwandte Themen