Я вставляю данные в GridFS, используя следующую командную строку:
mongofiles --host localhost:27017 --db testmongo --collection files put D:/text.txt
Он имеет поля типа _id filename chunkSize uploadDate md5 length.
Как я могу добавить свои собственные поля, используя cmd или Java?
Невозможно сделать это с помощью утилиты командной строки mongofiles, но это просто с использованием драйвера Java:
MongoClient client = new MongoClient();
GridFS gridFS = new GridFS(client.getDB("test");
GridFSInputFile in = gridFS.createFile(<insert bytes here>);
in.put("meta", 5); // insert extra metadata here
in.save();
GridFSDBFile out = gridFS.findOne( new BasicDBObject( "_id" , in.getId() ) );
System.out.println(out.get("meta")); // this will print 5
В принципе, просто поместите метаданные в GridFSInputFile и получите его из GridFSDBFile.
Файл будет выглядеть так (используя оболочку):
> db.fs.files.findOne()
{
"_id" : ObjectId("5333184bb0c659a378532bda"),
"chunkSize" : NumberLong(261120),
"length" : NumberLong(3),
"md5" : "acbd18db4cc2f85cedef654fccc4a4d8",
"filename" : null,
"contentType" : null,
"uploadDate" : ISODate("2014-03-26T18:11:23.973Z"),
"aliases" : null,
"meta" : 5
}