2017-11-22 6 views
2

Ich brauche nur die IDs aller Dokumente in einer Sammlung in Mongodb. Ich benutze Meteor. Fürs Erste verwende ich die einfache ._each-Schleife, aber ich wette, es gibt einen besseren Weg, aber leider klickt er nicht auf mich.nur IDs aus einer Mongo-Sammlung extrahieren

Unten ist mein Code:

var followedIds = Doubts.find({ch : chId, userId : userId}).fetch(); 
    var d_ids = []; 
    _.each(followedIds, function(doubt){ 
     d_ids.push(doubt._id) 
    }); 

Antwort

1

Sie können _.pluck verwenden, wenn Sie nur die IDs benötigen.

2

Eine kleine Änderung in projection können Sie nur _ids aus der Sammlung holen helfen:

var followedIds = Doubts.find({ch : chId, userId : userId}, 
     { 
      fields:{ 
       _id:1 
      } 
     }).fetch(); 
    var d_ids = []; 
    _.each(followedIds, function(doubt){ 
     d_ids.push(doubt._id) 
    }); 
+0

Ich habe das gleiche schon versucht, aber habe die gesamte Sammlung als Ausgabe. Ich habe versucht: var folgeDoubtIds = Doubts.find ({ch: chId, userId: userId}, {_id: 1}). Fetch(); Konsole.log (foldedDoubtIds). Es druckt das gesamte Dokument durch – user3807691

+0

Sie müssen das Objekt umbrechen, überprüfen Sie die aktualisierte Antwort. Überprüfen Sie dieses Dokument: https: //themeteorchef.com/tutorials/mongodb-queries-and-projections#tmc-the-mongodb-projection-document – Astro

1
db.collection_name.find({},{"id":1}) 

See Docs

{} bedeutet alle Dokumente

{"id": 1} Wir sind nur an id nicht anderen Bereichen interessiert.

+0

Ich habe ein langes Dokument. Ich habe 16 Felder im Dokument. Würde Schreiben Feld_1: 0 ..... Feld_16: 0 ein gutes Design sein? – user3807691

+0

Ja, ich habe die Antwort aktualisiert. –

Verwandte Themen