gpt4 book ai didi

mongodb - MongoDb 中的 .find() 打印同一文档的多次出现

转载 作者:行者123 更新时间:2023-12-02 09:42:06 25 4
gpt4 key购买 nike

以下代码是从 w3schools 复制的。它多次显示相同的输出。为什么?我已经在底部分享了输出。相同的行被检索两次。请帮助。我无法解决这个问题

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"},
{ "name": "Susan", "address": "One way 98"},
{ "name": "Vicky", "address": "Yellow Garden 2"},
{ "name": "Ben", "address": "Park Lane 38"},
{ "name": "William", "address": "Central st 954"},
{ "name": "Chuck", "address": "Main Road 989"},
{ "name": "Viola", "address": "Sideway 1633"}
]

x = mycol.insert_many(mylist)

for x in mycol.find():
print(x)

The output is as follows-
{'_id': ObjectId('5da749f00a2f7a69064f65e2'), 'name': 'Amy', 'address': 'Apple st 652'}
{'_id': ObjectId('5da749f00a2f7a69064f65e3'), 'name': 'Hannah', 'address': 'Mountain 21'}
{'_id': ObjectId('5da749f00a2f7a69064f65e4'), 'name': 'Michael', 'address': 'Valley 345'}
{'_id': ObjectId('5da749f00a2f7a69064f65e5'), 'name': 'Sandy', 'address': 'Ocean blvd 2'}
{'_id': ObjectId('5da749f00a2f7a69064f65e6'), 'name': 'Betty', 'address': 'Green Grass 1'}
{'_id': ObjectId('5da749f00a2f7a69064f65e7'), 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': ObjectId('5da749f00a2f7a69064f65e8'), 'name': 'Susan', 'address': 'One way 98'}
{'_id': ObjectId('5da749f00a2f7a69064f65e9'), 'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'_id': ObjectId('5da749f00a2f7a69064f65ea'), 'name': 'Ben', 'address': 'Park Lane 38'}
{'_id': ObjectId('5da749f00a2f7a69064f65eb'), 'name': 'William', 'address': 'Central st 954'}
{'_id': ObjectId('5da749f00a2f7a69064f65ec'), 'name': 'Chuck', 'address': 'Main Road 989'}
{'_id': ObjectId('5da749f00a2f7a69064f65ed'), 'name': 'Viola', 'address': 'Sideway 1633'}
{'_id': ObjectId('5da74a000a2f7a69064f65ef'), 'name': 'Amy', 'address': 'Apple st 652'}
{'_id': ObjectId('5da74a000a2f7a69064f65f0'), 'name': 'Hannah', 'address': 'Mountain 21'}
{'_id': ObjectId('5da74a000a2f7a69064f65f1'), 'name': 'Michael', 'address': 'Valley 345'}
{'_id': ObjectId('5da74a000a2f7a69064f65f2'), 'name': 'Sandy', 'address': 'Ocean blvd 2'}
{'_id': ObjectId('5da74a000a2f7a69064f65f3'), 'name': 'Betty', 'address': 'Green Grass 1'}
{'_id': ObjectId('5da74a000a2f7a69064f65f4'), 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': ObjectId('5da74a000a2f7a69064f65f5'), 'name': 'Susan', 'address': 'One way 98'}
{'_id': ObjectId('5da74a000a2f7a69064f65f6'), 'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'_id': ObjectId('5da74a000a2f7a69064f65f7'), 'name': 'Ben', 'address': 'Park Lane 38'}
{'_id': ObjectId('5da74a000a2f7a69064f65f8'), 'name': 'William', 'address': 'Central st 954'}
{'_id': ObjectId('5da74a000a2f7a69064f65f9'), 'name': 'Chuck', 'address': 'Main Road 989'}
{'_id': ObjectId('5da74a000a2f7a69064f65fa'), 'name': 'Viola', 'address': 'Sideway 1633'}

最佳答案

您已经运行了两次。请参阅“Amy”,她有两个不同的对象 ID。请注意,没有删除。每次运行此命令都会插入相同的记录。您可以扩充代码以在运行之前删除文档。

顺便说一句,ObjectId 是一个时间戳。您可以看到两条“Amy”记录的创建间隔大约为 15 秒。

replSet:PRIMARY> ObjectId("5da749f00a2f7a69064f65e2").getTimestamp()
ISODate("2019-10-16T16:48:48Z")

replSet:PRIMARY> ObjectId("5da74a000a2f7a69064f65ef").getTimestamp()
ISODate("2019-10-16T16:49:04Z")

您可以增加代码以首先删除,你知道,以清除数据,以便每次运行都有新的数据,并且没有重复...

import pymongo                                                                                                                                                                      

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mycol.delete_many({})

mylist = [
{ "name": "Amy", "address": "Apple st 652"},
{ "name": "Hannah", "address": "Mountain 21"},
{ "name": "Michael", "address": "Valley 345"},
{ "name": "Sandy", "address": "Ocean blvd 2"},
{ "name": "Betty", "address": "Green Grass 1"},
{ "name": "Richard", "address": "Sky st 331"},
{ "name": "Susan", "address": "One way 98"},
{ "name": "Vicky", "address": "Yellow Garden 2"},
{ "name": "Ben", "address": "Park Lane 38"},
{ "name": "William", "address": "Central st 954"},
{ "name": "Chuck", "address": "Main Road 989"},
{ "name": "Viola", "address": "Sideway 1633"}
]

x = mycol.insert_many(mylist)

for x in mycol.find():
print(x)

关于mongodb - MongoDb 中的 .find() 打印同一文档的多次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58418259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com