стежок mongodb возвращает все поля - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь вернуть только одно поле для всех моих документов.

Я новичок в mongoDB, но не могу понять, почему это не работает.

var docs = db.collection("articles").find({}, { _id: 0, title:1}).asArray();

У меня есть этот запрос, который возвращает ВСЕ поля, несмотря на то, что я проецирую только поле заголовка.Запрос выполняется без ошибок.Может быть, я упускаю что-то очень очевидное и мне нужна вторая пара глаз, чтобы заметить это.

Любая помощь приветствуется!

Примечание. Я использую API-интерфейс Stitch mongoDB Atlas.

1 Ответ

0 голосов
/ 19 октября 2018

Я предполагаю, что вы используете MongoDB Stitch Browser SDK (в настоящее время версия 4).

В этом случае collection является экземпляром RemoteMongoCollection .Где find () принимает параметры в формате RemoteFindOptions .Вы можете определить projection для ограничения полей соответствующих документов, определив объект с помощью клавиши projection.

Например:

const client = stitch.Stitch.initializeDefaultAppClient('app-id');
const db = client.getServiceClient(stitch.RemoteMongoClient.factory, 'mongodb-atlas').db('databaseName');

 client.auth.loginWithCredential(new stitch.AnonymousCredential())
       .then(() => {
          db.collection('collectionName')
            .find({}, 
                  {"projection":{"_id":0, "title": 1}}
             )
            .asArray().then(docs => {
              // prints results 
              console.log(docs);
          });
        }).catch(err => {
          // Handle error here
          console.log("Error", err);
 });
...