GVKun编程网logo

在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用(django使用mongodb)

2

在本文中,您将会了解到关于在djangoMongodb中像在mysql关键字中一样在mongodb中不起作用的新资讯,同时我们还将为您解释django使用mongodb的相关在本文中,我们将带你探索在

在本文中,您将会了解到关于在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用的新资讯,同时我们还将为您解释django使用mongodb的相关在本文中,我们将带你探索在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用的奥秘,分析django使用mongodb的特点,并给出一些关于ArgumentException:MongoDB + Unity2D 中的无效关键字 'mongodb+srv://test:test@HOST' - Live MongoDB 未连接、Django.server 日志配置在 Django Daphne 中不起作用、docker 安装 mongo 和 使用 mongo-express 图形化界面远程管理、Docker 容器PHP + MongoDB 扩展 + `phpdotenv` mongodb/mongodb 1.9.0-alpha1 需要 ext-mongodb ^1.10.0 -> 它从您的系统中丢失的实用技巧。

本文目录一览:

在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用(django使用mongodb)

在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用(django使用mongodb)

如何解决在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用

Questions.objects.find({ps_tags: "/"+request.POST[''txtTag'']+"/"}).values()

这是我用来从数据库中搜索相关词的代码,但出现以下错误。

错误 AttributeError: ''Manager'' 对象没有属性 ''find''

我想实现代码搜索(在 MysqL 中,如果我们想搜索,那么我们将使用 LIKE 关键字来匹配来自多行的行)与在 Django MongoDB 中一样我想实现但我收到上述错误,任何解决方案为此?

ArgumentException:MongoDB + Unity2D 中的无效关键字 'mongodb+srv://test:test@HOST' - Live MongoDB 未连接

ArgumentException:MongoDB + Unity2D 中的无效关键字 'mongodb+srv://test:test@HOST' - Live MongoDB 未连接

如何解决ArgumentException:MongoDB + Unity2D 中的无效关键字 ''mongodb+srv://test:test@HOST'' - Live MongoDB 未连接?

我试图在本地连接我的 Live MongoDB 数据库,但在我使用外部字符串而不是 localhost 时出错

我使用:

  • MongoDB 数据库 v4.0.x(使用 mongoDB 的免费集群)
  • Unity 2020.3.13

如果我使用 localhost,即使所有的插入、更新、删除查询都能正常工作,这段代码也能正常工作

using UnityEngine;
using UnityEngine.UI;
using MongoDB.Bson;
using MongoDB.Driver;
using System.Collections;
using UnityEngine.Networking;
using MongoDB.Driver.Builders;
using UnityEngine.SceneManagement;
using System;
using Newtonsoft.Json ;

public class Login_Screen : MonoBehavIoUr {

public InputField usernameedit;
public InputField passwordone;
public Button loginButton;


  void start(){
    string connectionString = "mongodb://localhost:27017";
    var client = new MongoClient(connectionString);
    var server = client.GetServer();
    var database = server.GetDatabase("admin");
    var playercollection = database.GetCollection<BsonDocument>("users");
  }
}

但是我用于 LIVE 数据库调用的相同内容,然后导致以下错误。甚至连不上。

string connectionString = "mongodb+srv://testUsername:testPassword@testClustor.mongodb.net?retryWrites=true&w=majority";

错误信息如下:

ArgumentException: Invalid keyword ''mongodb+srv://testusername:testpassword@xyz.xxx.mongodb.net/admin1?w''. MongoDB.Driver.MongoConnectionStringBuilder.set_Item (System.String keyword,System.Object value) (at <6da29fc855c44d33ad78b3e27475ff27>:0) System.Data.Common.DbConnectionStringBuilder.set_ConnectionString (System.String value) (at <290425a50ff84a639f8c060e2d4530f6>:0) MongoDB.Driver.MongoConnectionStringBuilder..ctor (System.String connectionString) (at <6da29fc855c44d33ad78b3e27475ff27>:0) MongoDB.Driver.MongoClient.ParseConnectionString (System.String connectionString) (at <6da29fc855c44d33ad78b3e27475ff27>:0) MongoDB.Driver.MongoClient..ctor (System.String connectionString) (at <6da29fc855c44d33ad78b3e27475ff27>:0) Login_Screen.DoLogin () (at Assets/Script/Login_Screen.cs:61) UnityEngine.Events.InvokableCall.Invoke () (at <24599fe2776145d58ab771516c063d56>:0) UnityEngine.Events.UnityEvent.Invoke () (at <24599fe2776145d58ab771516c063d56>:0) UnityEngine.UI.Button.Press () (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:68) UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/UI/Core/Button.cs:110) UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler,UnityEngine.EventSystems.BaseEventData eventData) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:50) UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target,UnityEngine.EventSystems.BaseEventData eventData,UnityEngine.EventSystems.ExecuteEvents+EventFunction1[T1] functor) (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/ExecuteEvents.cs:262) UnityEngine.EventSystems.EventSystem:Update() (at Library/PackageCache/com.unity.ugui@1.0.0/Runtime/EventSystem/EventSystem.cs:385)

我真的浪费了 2 天的时间来寻找解决方案,请任何人帮助我。提前致谢

解决方法

我遇到了同样的问题。检查您的 db 和 db 用户的设置 - 确保它们可以从外部 IP 访问。

我像这样修改了我的连接字符串:

 private readonly Dictionary<string,string> _config = new Dictionary<string,string>()
        {
            {"dbUser","xxxxxx"},{"dbName","YourDbName"},{"password","xxxxxxxxxxxxx"}
        };

        public IMongoDatabase CreateInstance()
        {
            var client = new MongoClient($"mongodb+srv://{_config["dbUser"]}:{HttpUtility.UrlEncode(_config["password"])}@pocdata.0u29g.mongodb.net/{HttpUtility.UrlEncode(_config["dbName"])}?retryWrites=true&w=majority");
            return client.GetDatabase(_config["dbName"]);
        }

我只是使用公共方法连接到数据库,但这不是强制性的 - 您可以直接替换值 - 只需对密码和数据库名称进行 url 编码

Django.server 日志配置在 Django Daphne 中不起作用

Django.server 日志配置在 Django Daphne 中不起作用

如何解决Django.server 日志配置在 Django Daphne 中不起作用

我想提高日志记录级别,以减少所有 2XX 响应的日志中的垃圾邮件。根据 Django 文档和其他 SO 问题,我在 django.server 中将 WARNING 记录器的级别更改为 settings.py。不幸的是,当我使用 daphne 运行我的服务器时,此更改不起作用。为了进行验证,我使用 manage.py runserver 运行了我的应用,并且配置正常运行。

我还尝试更改 LOGGING = {} 中所有记录器的日志级别(在 settings.py 中使用 logging.root.manager.loggerDict),但均未成功。

任何人都知道如何确定哪个记录器在 daphne 中记录如下所示的消息,或者如何强制 daphne 尊重 django.server 日志,假设它按我的预期工作?

我正在谈论的示例日志消息:

  1. 127.0.0.1:33724 - - [21/Apr/2021:21:45:13] "GET /api/foo/bar" 200 455

解决方法

我自己找到了答案。如果有人遇到同样的问题:

在深入研究 Daphne 源代码后,它看起来目前没有使用标准的 logging 库,而是依赖于将所有访问日志消息写入 stdout 或给定文件的自己的类。我看不到提高日志级别的可能性。

有关详细信息,请咨询 https://github.com/django/daphne/blob/main/daphne/access.py。

docker 安装 mongo 和 使用 mongo-express 图形化界面远程管理

docker 安装 mongo 和 使用 mongo-express 图形化界面远程管理

高春辉、王春生、朱峰:关于开源创业的 15 件小事

docker run -d -p 27017:27017 --name mongo -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=mongoadmin mongo:4.2.6

docker run -it --restart=always --name mongo-express --link mongo:mongo -d -p 8081:8081 -e ME_CONFIG_OPTIONS_EDITORTHEME="3024-night" -e ME_CONFIG_BASICAUTH_USERNAME="mongoexpress" -e ME_CONFIG_BASICAUTH_PASSWORD="mongoexpress" -e ME_CONFIG_MONGODB_ADMINUSERNAME="mongoadmin" -e ME_CONFIG_MONGODB_ADMINPASSWORD="mongoadmin" mongo-express

浏览器输入 http://127.0.0.1:8081/ 用户名密码都是 mongoexpress

Docker 容器PHP + MongoDB 扩展 + `phpdotenv` mongodb/mongodb 1.9.0-alpha1 需要 ext-mongodb ^1.10.0 -> 它从您的系统中丢失

Docker 容器PHP + MongoDB 扩展 + `phpdotenv` mongodb/mongodb 1.9.0-alpha1 需要 ext-mongodb ^1.10.0 -> 它从您的系统中丢失

如何解决Docker 容器PHP + MongoDB 扩展 + `phpdotenv` mongodb/mongodb 1.9.0-alpha1 需要 ext-mongodb ^1.10.0 -> 它从您的系统中丢失

我想要一个用于 PHP 的运行 Docker 容器,它可以与 MongoDB Atlas 数据库进行远程交互。

我已经硬编码并手动修复了自定义 Docker 映像以使 MongoDB 扩展正常工作。现在在扩展它以包含 vlucas/PHPdotenv composer 包时遇到问题。研究其他位置,似乎还有其他方法可以运行单独的 composer 容器并映射相关驱动器:

https://hackernoon.com/get-composer-to-run-on-docker-container-a-how-to-guide-y86g36z7

但是我无法使用 PHP:8.0-apache 图像或我自己的自定义图像来运行它。

自定义图像构建为:

  1. FROM PHP:8.0-apache
  2. RUN apt-get update -y && apt-get upgrade -y && apt-get install git libssl-dev -y
  3. RUN pecl install mongodb && docker-PHP-ext-enable mongodb
  4. RUN echo "extension=mongodb.so" >> /usr/local/etc/PHP/PHP.ini
  5. copY --from=composer /usr/bin/composer /usr/bin/composer
  6. EXPOSE 80 443

docker-compose.yml,使用我上面的自定义图片,是:

  1. version: ''2''
  2. services:
  3. PHP:
  4. image: redswitch/PHP-mongodb:8.0-1.9.0-3
  5. container_name: PHP
  6. volumes:
  7. - ./html:/var/www/html
  8. restart: always
  9. environment:
  10. - VIRTUAL_HOST=www.domain.com
  11. - LETSENCRYPT_HOST=www.domain.com
  12. - LETSENCRYPT_EMAIL=admin@domain.com
  13. - "TZ=Europe/London"
  14. ports:
  15. - 80
  16. expose:
  17. - 80
  18. restart: unless-stopped
  19. composer:
  20. image: composer:2.0
  21. command: ["composer","install"]
  22. volumes:
  23. - ./html:/app
  24. networks:
  25. default:
  26. external:
  27. name: Nginx-proxy-net

./html 的位置是 composer.json

  1. {
  2. "require": {
  3. "mongodb/mongodb": "^1.9.0-alpha1","vlucas/PHPdotenv": "^5.3.0"
  4. }
  5. }

我尝试了不同的最低版本,例如 ^1.8.0^1.9.0 和以上。这会根据 composer.json 文件中指定的版本提供相同错误消息的差异。

composer 容器按预期启动和停止。这是容器的日志:

  1. No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.,Loading composer repositories with package information,Updating dependencies,Your requirements Could not be resolved to an installable set of packages.,Problem 1,- Root composer.json requires mongodb/mongodb ^1.9.0-alpha1 -> satisfiable by mongodb/mongodb[1.9.0-alpha1].,- mongodb/mongodb 1.9.0-alpha1 requires ext-mongodb ^1.10.0 -> it is missing from your system. Install or enable PHP''s mongodb extension.,To enable extensions,verify that they are enabled in your .ini files:,- /usr/local/etc/PHP/PHP-cli.ini,- /usr/local/etc/PHP/conf.d/docker-PHP-ext-sodium.ini,- /usr/local/etc/PHP/conf.d/docker-PHP-ext-zip.ini,You can also run `PHP --ini` inside terminal to see which files are used by PHP in CLI mode.,

使用 PHP 调用检查 PHPinfo() 容器,我可以看到 MongoDB 扩展 v1.9.0 已启用,加载的配置文件和附加配置位于:

  • /usr/local/etc/PHP/PHP.ini
  • /usr/local/etc/PHP/conf.d/docker-PHP-ext-mongodb.ini,/usr/local/etc/PHP/conf.d/docker-PHP-ext-sodium.ini立>

我该如何解决这个问题?

这是部署 PHP+MongoDB+Composer+PHPDotEnv 的正确方式吗?

今天关于在 django Mongodb 中像在 mysql 关键字中一样在 mongo db 中不起作用django使用mongodb的介绍到此结束,谢谢您的阅读,有关ArgumentException:MongoDB + Unity2D 中的无效关键字 'mongodb+srv://test:test@HOST' - Live MongoDB 未连接、Django.server 日志配置在 Django Daphne 中不起作用、docker 安装 mongo 和 使用 mongo-express 图形化界面远程管理、Docker 容器PHP + MongoDB 扩展 + `phpdotenv` mongodb/mongodb 1.9.0-alpha1 需要 ext-mongodb ^1.10.0 -> 它从您的系统中丢失等更多相关知识的信息可以在本站进行查询。

本文标签: