我正在使用 mongo 和 sails.js。我的应用程序允许用户在 mongodb 中创建一个新集合。由于该集合是由用户创建的,因此模型文件夹中没有 sails 模型,因此我无法查询新集合(创建、更新、删除)等。
关于如何实现这一目标有什么想法吗?我正在研究 Model.native() 内置函数,但是当用户创建新集合时没有生成模型,因此这不起作用。
最佳答案
这取决于您想要什么:创建一个新模型或只是一个集合。
- 型号
如果您想生成新模型并通过 GET、POST 等进行访问,就像您使用以下命令创建新 API 时一样:
sails generate api foo
您需要运行该命令,然后重新启动服务器,因为服务器需要将模型与数据库集合进行映射。
- 收藏
如果您想创建一个集合,请考虑您将无法通过 GET、POST 访问此集合,因为它不是模型。
MongoDB在插入第一个文档之前不会创建数据库或集合。因此,如果您只想在 mongoDB 中创建一个新集合,您可以运行您自己的脚本来执行此操作。
这基本上就是它的工作原理和设计初衷。当您插入一些数据时,将创建数据库和集合。
例如,您可以使用 python-shell 运行 python 脚本 .
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)
关于sails.js - 在 Sails.js 中动态创建模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40580127/