本文整理汇总了TypeScript中frost-component.MongoProvider.find方法的典型用法代码示例。如果您正苦于以下问题:TypeScript MongoProvider.find方法的具体用法?TypeScript MongoProvider.find怎么用?TypeScript MongoProvider.find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类frost-component.MongoProvider
的用法示例。
在下文中一共展示了MongoProvider.find方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: BearerStrategy
passport.use('accessToken', new BearerStrategy(async (accessToken, done) => {
try {
const tokenDocRaw: ITokenDocument = await db.find('api.tokens', { accessToken });
if (!tokenDocRaw) {
done(null, false);
return;
}
const tokenDoc = new TokenDocument(tokenDocRaw);
const userDocRaw: IUserDocument = await db.find('api.users', { _id: tokenDocRaw.userId });
if (!userDocRaw) {
done(null, false);
return;
}
const userDoc = new UserDocument(userDocRaw);
const appDocRaw: IAppDocument = await db.find('api.apps', { _id: tokenDocRaw.appId });
if (!appDocRaw) {
done(null, false);
return;
}
const appDoc = new AppDocument(appDocRaw);
await appDoc.populate(db);
done(null, userDoc, { app: appDoc, token: tokenDoc } as any);
}
catch (err) {
done(err);
}
}));
示例2: function
/**
* 保存されているデータフォーマットを確認します。
*
* APIのバージョンアップによって保存されるデータの構造が変更される場合があります。
* 「データフォーマット」は、正常に初期化・データ移行するために必要な識別子です。
*/
export default async function(db: MongoProvider, currentVersion: number): Promise<DataFormatState> {
const dataFormat = await db.find('meta', { type: 'dataFormat' });
let docCount = 0;
docCount += await db.count('api.users', {});
docCount += await db.count('api.apps', {});
docCount += await db.count('api.tokens', {});
docCount += await db.count('api.userRelations', {});
docCount += await db.count('api.postings', {});
docCount += await db.count('api.storageFiles', {});
// データフォーマットが保存されていないとき
if (!dataFormat) {
if (docCount == 0) {
return DataFormatState.needInitialization;
}
else {
return DataFormatState.needMigration;
}
}
// データフォーマットが一致しているとき
if (dataFormat.value === currentVersion) {
return DataFormatState.ready;
}
// データフォーマットが期待したものであるとき
if (dataFormat.value < currentVersion) {
return DataFormatState.needMigration;
}
else {
return DataFormatState.unknown;
}
}
示例3: async
menu.add('generate or get token for authorization host', () => (dataFormatState == DataFormatState.ready), async (ctx) => {
const rootUser = await db.find('api.users', { root: true });
let rootApp = await db.find('api.apps', { root: true });
if (rootApp) {
let hostToken = await db.find('api.tokens', { host: true });
if (!hostToken) {
const scopes = config.hostToken.scopes;
hostToken = await tokenService.create(rootApp, rootUser, scopes, true);
log('host token created:', hostToken);
}
else {
log('host token found:', hostToken);
}
}
await refreshMenu();
});
示例4: find
async find(appId: string | ObjectId, userId: string | ObjectId, scopes: string[]): Promise<TokenDocument | null> {
const scopesQuery: any = { $size: scopes.length };
// NOTE: 空の配列を$allに指定すると検索にヒットしなくなるので、空のときは$allを指定しない
if (scopes.length != 0) {
scopesQuery.$all = scopes;
}
const tokenDocRaw = await this.db.find('api.tokens', {
appId: MongoProvider.buildId(appId),
userId: MongoProvider.buildId(userId),
scopes: scopesQuery
});
return tokenDocRaw ? new TokenDocument(tokenDocRaw) : null;
}
示例5: getRelation
async getRelation(sourceUserId: string | ObjectId, targetUserId: string | ObjectId): Promise<IUserRelation> {
const docRaw: IUserRelationDocument = await this.db.find('api.userRelations', {
sourceUserId: sourceUserId,
targetUserId: targetUserId
});
if (!docRaw) {
return {
sourceUserId: MongoProvider.buildId(sourceUserId).toHexString(),
targetUserId: MongoProvider.buildId(targetUserId).toHexString(),
status: 'notFollowing'
};
}
const userRelationDoc = new UserRelationDocument(docRaw);
const userRelation = await userRelationDoc.pack(this.db);
return userRelation;
}
示例6: findByScreenName
async findByScreenName(screenName: string): Promise<UserDocument | null> {
// find (ignore case)
const rawDocument: IUserDocument | null = await this.db.find('api.users', { screenName: new RegExp(`^${screenName}$`, 'i') });
return rawDocument ? new UserDocument(rawDocument) : null;
}
示例7: findByAccessToken
async findByAccessToken(accessToken: string): Promise<TokenDocument | null> {
const tokenDocRaw = await this.db.find('api.tokens', { accessToken });
return tokenDocRaw ? new TokenDocument(tokenDocRaw) : null;
}