2016-11-13 84 views
3

我正在使用mongo和sails.js。我的应用程序允许用户在MongoDB中创建一个新的集合。由于是由用户创建的这个集合没有在模型文件夹中没有帆模型,因此我不能查询新的集合(创建,更新,删除)等在Sails.js中动态创建模型

我如何能做到这一点任何想法?我正在研究内置函数Model.native(),但是当用户创建一个新的集合时没有生成模型,因此无法工作。

+0

你不能做到这一点。即使您生成新模型,您也需要重新启动服务器才能看到它。 – Bonanza

回答

1

这取决于你想要什么:创建新模型或只是一个集合。

  • 型号

如果你想生成一个新的模式和访问与GET,POST,等等。就像当你创建一个新的API有:

帆产生api foo

你需要运行命令,然后重新启动服务器,因为服务器需要与数据库集合映射模型。

  • 收集

如果你想创建一个集合考虑您将无法通过GET访问此集合,POST,因为它不是一个模型。

在插入第一个文档之前,MongoDB 不会创建数据库或集合。所以,如果你只是想创建一个新的集合 MongoDB中,你可以运行你自己的脚本做到这一点。

这基本上是它的工作原理,是通过设计。当你插入一些数据时,数据库和集合将被创建。

例如,您可以运行python脚本python-shell

from pymongo import MongoClient 
import testdata 
from pprint import pprint 

client = MongoClient() 
db  = client.test['collectionDummy'] 

import datetime 

class Temp(testdata.DictFactory): 
    id  = testdata.CountingFactory(10) 
    number = testdata.CountingFactory(10) 
    address = testdata.FakeDataFactory('address') 
    firstName = testdata.FakeDataFactory('firstName') 

for document in Temp().generate(2): 
    result = db.insert_one(document)