2016-11-13 2 views
3

mongo 및 sails.js를 사용 중입니다. 내 응용 프로그램을 사용하면 사용자가 mongodb에 새 모음을 만들 수 있습니다. 이 컬렉션은 사용자가 만들었 기 때문에 모델 폴더에는 돛 모델이 없으므로 새 컬렉션 (생성, 업데이트, 삭제)을 쿼리 할 수 ​​없습니다.Sails.js에서 동적 모델 생성

어떻게하면이 작업을 수행 할 수 있습니까? Model.native() 내장 함수를 찾고 있었지만 사용자가 새 컬렉션을 만들 때 모델이 생성되지 않아 작동하지 않습니다.

+0

그렇게 할 수 없습니다. 새 모델을 생성하더라도 서버를 재부팅해야 볼 수 있습니다. – Bonanza

답변

1

당신이 원하는대로 달라집니다 : 새로운 모델 또는 컬렉션을 만듭니다.

  • 모델

당신이 등 GET, POST와 새로운 모델 및 액세스를 생성 하려면 .. 같은 당신과 함께 새로운 API를 만들 때 :

돛은 api foo를 생성한다

명령을 실행하려면 서버는으로 다시 시작해야합니다. 서버가 db 컬렉션을 사용하여 모델을 매핑해야하기 때문입니다.

모음을 만들려면

  • 컬렉션은 모델이 아니기 때문에 당신이, GET을 통해 POST를이 컬렉션에 액세스 할 수 없습니다 것을 고려하십시오.

    MongoDB 첫 번째 문서이 삽입 될 때까지 데이터베이스 또는 모음을 만들지 않습니다. 그래서, 그냥 에 새 컬렉션을 만들려면에서 mongoDB 할 수 있습니다 자신의 스크립트를 실행하십시오.

    이것은 기본적으로 작동하는 방식이며 의도적으로 설계된 것입니다. 일부 데이터를 삽입하면 데이터베이스와 컬렉션이 만들어집니다.

    예를 들어 파이썬 스크립트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) 
    
관련 문제