2017-09-18 1 views
1

新しいデータをドキュメント内の配列にプッシュすることで、毎秒100個のドキュメントを更新します。データを追加する文書を取得するには、mongoose .find().limit(1)関数を使用して、文書全体を返します。それはうまく動作します。mongoose .find()上のドキュメントを返す

メモリとCPUの問題を解決するために、find()をドキュメントのidに返すだけで、$ pushや$ newデータを使用できるようになりました。

ありがとうございました。

+0

'find'関数の2番目のパラメータは文字列で、含めるまたは除外するドキュメントフィールドを指定します。 '_id'だけを含めるには' collection.find({}、 '_id') 'を使います。 – alexmac

答えて

1

Projectionを使用して、オブジェクトに必要なものを正確に伝えたいとします。

_idは、そうしないと指示しない限り、常に含まれます。

readings = await collection 
.find({ 
    name: "Some name you want" 
}) 
.project({ 
    _id: 1 // By default 
}) 
.toArray(); 
+1

'collection.find({}、 '_id')'で十分ではありませんか? – alexmac

+0

ありがとうございます! – Manu

+0

@alexmac私はそれも(2番目のパラメータはオブジェクトである必要があるかもしれませんが)うまくいくと思いますが、より明示的なので '.project()'が好きです。 – zero298

関連する問題