sails.js - 在 Sails.js 中动态创建模型

标签 sails.js waterline sails-mongo

我正在使用 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/

相关文章:

javascript - 将模型属性方法发送到客户端 Sails Angular

javascript - 有没有更好的方法在 Sails JS 中使用嵌套(关联)模型?

node.js - Sails 将数据创建为多对多关系

javascript - Mongo在插入后查找文档

mysql - 多表更新 sailsjs mysql

mysql - MySQL在sails中如何执行LIKE操作?

node.js - 即使关联为空,关联填充也会返回结果

mysql - 找不到这个 MySQL 事件语法有什么问题

node.js - 使用 Promise 进行流量控制

arrays - sails.js Waterline 保存、读取、解析列表或数组