Стежок 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);
});