Meteor JS CollectionFS и/или запрос MongoDB: как запросить CollectionFS для документа

Это код, который я использовал для инициализации моей CollectionFS:

Uploads = new FS.Collection('uploads', {
  stores: [new FS.Store.FileSystem('uploads', {path: '~/projectUploads'})]

});

Это мой документ CollectionFS, который я вставил, как показано в Robomongo:

{
    "_id" : "n3M8geaZXnNkZ7mHP",
    "original" : {
        "name" : "AguaBendita.jpg",
        "updatedAt" : ISODate("2014-02-19T11:05:40.000Z"),
        "size" : 73719,
        "type" : "image/jpeg"
    },
    "uploadedAt" : ISODate("2015-04-04T09:24:49.433Z"),
    "copies" : {
        "uploads" : {
            "name" : "AguaBendita.jpg",
            "type" : "image/jpeg",
            "size" : 73719,
            "key" : "uploads-n3M8geaZXnNkZ7mHP-AguaBendita.jpg",
            "updatedAt" : ISODate("2015-04-04T09:24:49.000Z"),
            "createdAt" : ISODate("2015-04-04T09:24:49.000Z")
        }
    }
}

Я знаю, как find или findOne документ на основе _id например.

var testingfetchAgua = Uploads.find({_id: 'n3M8geaZXnNkZ7mHP'}).fetch();

or

var testingfetchAgua = Uploads.files.findOne({_id: 'n3M8geaZXnNkZ7mHP'}).fetch();

однако я не знаю, как find или findOne документ на основе ключа/значения "имя" внутри "исходного" ключа/значения?

Возможно ли это вообще в CollectionFS?

Как это сделать в запросе CollectionFS?

Как это сделать в запросе MongoDB?

Одинаков ли запрос в MongoDB в CollectionFS?


person preston    schedule 04.04.2015    source источник


Ответы (1)


  • Это возможно.

  • Вы делаете это с помощью записи через точку, например: var testingfetchAgua = Uploads.find({ 'original.name': 'AguaBendita.jpg' }).fetch();

  • Запросы AFAIK одинаковы, поскольку CollectionFS использует MongoDB.

Вот также связанный с этим вопрос . А вот документы MongoDB, к которым вы можете обратиться при возникновении таких проблем.

Изменить (чтобы немного расширить отношения FS и Mongo):

Когда вы вызываете Uploads.files, вы фактически получаете базовую коллекцию MongoDB.

FS.Collection предоставляет коллекцию, в которой может храниться информация о файлах. Он поддерживается базовым обычным экземпляром Mongo.Collection. Большинство методов сбора, например find и insert, доступны в экземпляре FS.Collection. Если вам нужно вызвать другие методы коллекции, такие как _ensureIndex, вы можете вызвать их непосредственно в базовом экземпляре Mongo.Collection, доступном через myFSCollection.files.

Из CollectionFS github readme

person Kirill    schedule 04.04.2015