Стежок mongodb возвращает все поля

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

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

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

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

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

Примечание: я использую API Stitch для mongoDB Atlas.

1 ответ

Я предполагаю, что вы используете 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);
 });
Другие вопросы по тегам