Meteor JS CollectionFS和/或MongoDB查询:如何查询文档的CollectionFS

时间:2015-04-04 11:41:17

标签: mongodb meteor 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")
        }
    }
}

我知道findfindOne基于_id的文档 e.g。

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

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

但是,根据" name"我不知道如何findfindOne该文档。 "原创"内的键/值键/值?

这在 CollectionFS中是否可行?

如何在 CollectionFS 查询中执行此操作?

如何在 MongoDB 查询中执行此操作?

MongoDB中的查询在 CollectionFS 中是否相同?

1 个答案:

答案 0 :(得分:0)

  • 有可能。

  • 您使用点符号表示:var testingfetchAgua = Uploads.find({ 'original.name': 'AguaBendita.jpg' }).fetch();

  • AFAIK查询是相同的,因为CollectionFS使用MongoDB。

这里还有一个related question。这里是MongoDB docs,您可以在遇到此类问题时进行咨询。

编辑(扩展FS和Mongo的关系):

当您致电Uploads.files时,您实际上获得了基础MongoDB集合。

  

FS.Collection提供了一个集合,可以存储有关文件的信息。它由底层的普通Mongo.Collection实例支持。 FS.Collection实例上提供了大多数集合方法,例如find和insert。如果需要调用其他集合方法(如_ensureIndex),可以直接在myFSCollection.files提供的基础Mongo.Collection实例上调用它们。

来自CollectionFS github readme