MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB копира поле в друга колекция с външен ключ

Има няколко проблема с настройката на вашия тест:

  • Регистърът на имената на полетата не съвпада (препращате към color вместо Color при копиране)
  • Само един от примерните външни ключове съвпада в целевата колекция:ObjectId('515f7db83f71d6bcb1c41a48')
  • Вашата актуализация ще засегне само първия съответстващ документ за „чужд ключ“. Това би било добре за връзка 1:1, но не и за 1:много

Коригиран пример, като се вземе предвид горното (освен несъответстващите ключове):

db.test1.User.find().forEach( 
    function(x) {
        db.test2.Car.update(
            // query 
            { userID: x._id },

            // update 
            { $set: { color: x.Color} },

            // options:
            { "multi" : true } // Update all matching documents
        );
    }
);

Което води до настройка на {color:blue} за единствения външен ключ, който действително съвпада в примерните документи:

db.test2.Car.find()
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a55"),
    "speed" : 202,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a49")
}
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a56"),
    "speed" : 193,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a4a")
}
{
    "_id" : ObjectId("515f84883f71d6bcb1c41a54"),
    "color" : "blue",
    "speed" : 291,
    "userID" : ObjectId("515f7db83f71d6bcb1c41a48")
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Съхраняване на UTC и местна дата и час в Mongo

  2. Как да изложа нов REST метод на чрез Spring Data MongoDB хранилище с ALPS/HATEOAS метаданни?

  3. Използване на CouchDb на телефон с Android и mongodb от страната на сървъра

  4. Групирайте и пребройте с условие

  5. MongoDB Механизмът за съхранение по подразбиране 'wiredTiger' не е наличен с тази компилация на mongod + ..no /data/db папка..