【问题标题】:Create models dynamically in Sails.js在 Sails.js 中动态创建模型
【发布时间】:2016-11-13 23:51:32
【问题描述】:

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

关于如何实现这一点的任何想法?我正在研究 Model.native() 内置函数,但是当用户创建新集合时没有生成模型,所以这不起作用。

【问题讨论】:

  • 你不能那样做。即使您生成新模型,您也需要重新启动服务器才能使其可见。

标签: sails.js waterline sails-mongo


【解决方案1】:

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

  • 型号

如果您想生成新模型并使用 GET、POST 等进行访问,例如当您使用以下方法创建新 API 时:

sails 生成 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    相关资源
    最近更新 更多