MongoDB не разрешает объединения, но вы можете использовать плагины для его обработки. Проверьте плагин mongo-join. Это лучшее, и я уже использовал его. Вы можете установить его с помощью npm прямо следующим образом npm install mongo-join
. Вы можете проверить полную документацию с примерами .
(++) действительно полезный инструмент, когда нам нужно объединить (N) коллекции
(- ), мы можем применять условия только на верхнем уровне запроса
Пример
var Join = require('mongo-join').Join, mongodb = require('mongodb'), Db = mongodb.Db, Server = mongodb.Server;
db.open(function (err, Database) {
Database.collection('Appoint', function (err, Appoints) {
/* we can put conditions just on the top level */
Appoints.find({_id_Doctor: id_doctor ,full_date :{ $gte: start_date },
full_date :{ $lte: end_date }}, function (err, cursor) {
var join = new Join(Database).on({
field: '_id_Doctor', // <- field in Appoints document
to: '_id', // <- field in User doc. treated as ObjectID automatically.
from: 'User' // <- collection name for User doc
}).on({
field: '_id_Patient', // <- field in Appoints doc
to: '_id', // <- field in User doc. treated as ObjectID automatically.
from: 'User' // <- collection name for User doc
})
join.toArray(cursor, function (err, joinedDocs) {
/* do what ever you want here */
/* you can fetch the table and apply your own conditions */
.....
.....
.....
resp.status(200);
resp.json({
"status": 200,
"message": "success",
"Appoints_Range": joinedDocs,
});
return resp;
});
});
К прокручиваемому контейнеру и родительскому контейнеру (слева) добавьте height: 100%, width: 100%;
. Он будет динамически изменяться в зависимости от родителя, если указан в%, и свойство переполнения также будет работать.
Если вы не можете установить width/max-width
для контейнера, я предполагаю, что вы все равно можете установить max-width
в parent
(левая панель) в container
. Если да, вы можете попробовать установить max-height:inherit
на container
после установки max-width
на левой панели.
<html>
<body style="display: flex">
<!-- left panel -->
<div style="flex: 2; max-height:100px">
<!-- scrollable container, no effect -->
<div style="overflow: scroll;max-height:inherit;">
<!-- big child content div -->
<div style="width: 800px; height: 200px; background: red"></div>
</div>
</div>
<!-- vertical divider -->
<div style="width: 1px; background: blue">
<!-- right panel -->
<div style="flex: 3">
right panel content
</div>
<script type="text/javascript">
</script>
</div><div class="as-console-wrapper"><div class="as-console"></div></div></body>
</html>