我正在尝试使用docker部署mongodb replicaset.我设法通过执行以下操作在同一台服务器上执行此操作:
docker run -d --expose 27017 --name mongodbmycompany1 dockerfile/mongodb mongod --replSet rsmycompa
docker run -d --expose 27017 --name mongodbmycompany2 dockerfile/mongodb mongod --replSet rsacommeassure
docker run -d --expose 27017 --name mongodbmycompany3 dockerfile/mongodb mongod --replSet rsacommeassure
MONGODB1=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongodbmycompany1)
MONGODB2=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongodbmycompany2)
MONGODB3=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mongodbmycompany3)
echo $MONGODB1
echo $MONGODB2
echo $MONGODB3
echo "Mongodb Replicaset init"
docker exec mongodbmycompany1 mongo 127.0.0.1:27017/mycompany --eval 'if(!rs.conf()) { rs.initiate(); cfg = rs.conf(); cfg.members[0].host = …Run Code Online (Sandbox Code Playgroud) 我在Mongodb的集合中有一些文档:
{_id : ObjectId('533af69b923967ac1801e113'), fKey : '533aeb09ebef89282c6cc478', ... }
{_id : ObjectId('5343bd1e2305566008434afc'), fKey : ObjectId('5343bd1e2305566008434afc'), ...} }
Run Code Online (Sandbox Code Playgroud)
如您所见,我的字段fkey可以由字符串或ObjectId设置。
我想获取所有与'533aeb09ebef89282c6cc478'或ObjectId('5343bd1e2305566008434afc')匹配的文档。
但是如果我跑:
db.mycollection.find({fkey : '533aeb09ebef89282c6cc478'})
Run Code Online (Sandbox Code Playgroud)
我只得到集合的第一个文件。
有没有一种方法可以配置Mongodb,以便在不检查类型的情况下获取与请求匹配的所有文档?
谢谢你的帮助。
皮埃尔