1

这是我用来初始化我的 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 例如的文档

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

或者

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

但是我不知道如何findfindOne基于“原始”键/值中的“名称”键/值的文档?

这在CollectionFS 中是否可行?

如何在CollectionFS查询中做到这一点?

你如何在MongoDB查询中做到这一点?

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

4

1 回答 1

0
  • 有可能的。

  • 您可以使用如下点符号来执行此操作: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 等其他收集方法,可以直接在通过 myFSCollection.files 获得的底层 Mongo.Collection 实例上调用它们。

来自CollectionFS github 自述文件

于 2015-04-04T13:16:56.173 回答