問題タブ [mongo-shell]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - コレクション以外の埋め込みドキュメントを Mongo Shell で削除する
だから、私は多くの埋め込みドキュメントを使用するアプリケーションを持っていますが、これは問題ありません。show collections
ただし、Mongo シェルでは一部の埋め込みドキュメントが表示されないことに気付きました。
通常、これは問題ではありませんが、埋め込みドキュメントの設定をいじっているときに、誤ってエントリの 1 つに空のエントリを追加してしまいました。私は通常、エントリを削除するためにこのようなことをしますdb.collection.remove({_id: ObjectId('<OBJECT_ID>')})
が、これらのいくつかは実際のコレクションではないため、このようにすることはできません.
また、実際にドキュメントを削除しているときに、これをうまくつなぎ合わせる方法もわかりません。エントリからスプライスすることはできますが、埋め込まれたドキュメントが DB のどこかに浮かんでいるような気がします。
これを行う方法はありますか?
私が話していることを理解してもらうために、エントリの例を示します。
javascript - mongo シェルで Date 値から ObjectId を作成する方法は?
過去にこのドキュメントの作成をシミュレートするために、mongo シェルで新しい ObjectId を作成したいのですが、過去の Date に対して作成します。これは、ObjectId のgetTimestamp()関数の反対になります(つまり、タイムスタンプを指定し、呼び出し時にそのタイムスタンプを返す ObjectId を取得しますgetTimestamp
)。
これを行う方法はありますか?
mongodb - MongoDB shell new ISODate(0001-01-01) が日付 1901-01-01 を返す理由
Windows 上の MongoDB シェルで、次の値でクエリを実行した場合
実際に検索するようです
"new ISODate('0001-01-01T00:00:00Z')" を Mongo シェルに直接入力すると、ISODate("1901-01-01T00:00:00Z") が返されるため、この変換が行われていることがわかります。
奇妙なことに、「new ISODate」の代わりに「new Date」を使用すると、次のように入力します。
正しい ISODate("0001-01-01T00:00:00Z") を返します。
どちらもドキュメントに従って ISODate を返すことになっており、私の考えでは同じように動作するはずです。なぜそうしないのか、そしてそれがバグなのか機能なのかを知っている人はいますか?
mongo-shell - mongoshell から、utc 日時とエポック値を utc 日時として mongodb に挿入する方法
サンプル ティック データを mongo db にロードする概念実証を試みています。ティック アーカイブ データは一般に utc とエポックにあり、そのままロードし、ローカルの日時ではなく utc として出力する必要があります。
再度 utc にキャストせずに mongodb に utc 日時とエポックを挿入し、utc と同じもののみを取得する方法。
代わりに、ローカル CST を挿入し、CST としても出力します。
db.equity_ticks.find().pretty()
どんな助けでも大歓迎です。
javascript - mongodb 複合体または/およびクエリ
そのため、イベントの開始時刻と終了時刻を格納するコレクションがあり、ユーザーが「フィルター」の開始時刻と終了時刻を指定してイベントを照会できるようにしたいと考えています。クエリは、フィルター時間と交差するすべてのイベントを返す必要があります。クエリを正しく作成していると思っていましたが、必要な結果が返されません。
サンプルデータ (アイデアを得るために単純化された mongo ドキュメント、時間は HHMMSS):
私が試したクエリは次のとおりです(ここで括弧を逃した場合は許してください。それは問題ではありません):
3 つの結果のうちの 1 つだけが返されました。$or パーツの順序を切り替える (開始時間の前に終了時間に対してクエリを実行する) と、2 つの結果が得られますが、3 つすべてではありません。複合クエリの場合、クエリの2番目の部分を適用する前に、最初の部分と一致しない結果をmongoが破棄することを読んだことを覚えているようですが、 $or 演算子がそれを処理すると思いました。何か案は?私のクエリは間違っていますか? これは mongo でのクエリの制限ですか?